Tôi có thể tạo giao diện ethernet ảo có tên eth0 không?


24

Tôi đang chạy Arch dựa trên kernel Linux 3.10.5-1. Hệ thống sử dụng các quy ước đặt tên thực tế mới của giao diện ethernet enp * s * và wlp * v.v ... Đây là một vấn đề, tuy nhiên, vì tổ chức giáo dục của tôi đang sử dụng một chương trình có tên là Maple 17 . Hệ thống cấp phép của Maple phụ thuộc vào sự tồn tại của giao diện có tên eth0 vì nó phải lấy địa chỉ MAC của giao diện đó để xác minh giấy phép. Đó là một giải pháp tồi, nhưng tôi phải làm việc xung quanh nó.

Điều này có nghĩa là tôi sẽ cần một giao diện eth0 với bất kỳ địa chỉ MAC nào (Vì tôi có thể truy xuất tệp giấy phép mới cho địa chỉ MAC mới) mà không nhất thiết phải hoạt động. Trong thực tế, nó nên được hạ xuống mọi lúc. Tôi nghĩ có một số cách để cố gắng giải quyết vấn đề này, nhưng tôi không thể tìm thấy bất cứ điều gì về bất kỳ ý tưởng nào.

  • Tạo một bộ chuyển đổi mà không cần kết nối
  • Tạo bí danh cho enp3s0 có tên eth0
  • Đổi tên enp3s0 hoặc giao diện loopback.

Những điều tôi chỉ có thể tìm thấy được thay đổi theo các quy ước mới hơn và trên các phiên bản cũ của udev. Họ chỉ làm việc trên RHEL và SuSe. Tôi đã thử nó mà không có may mắn mặc dù. (dai dẳng-net-name.rules và net-name-slot.rules, cả hai đều khiến giao diện thực tế của tôi ngừng hoạt động và giao diện wlan của tôi biến mất)

Câu trả lời:


28

Chắc chắn rồi. Bạn có thể tạo một tapthiết bị khá dễ dàng, bằng tunctl(từ tiện ích uml, ít nhất là trên Debian):

# tunctl -t eth0
Set 'eth0' persistent and owned by uid 0
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr a6:9b:fe:d8:d9:5e  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Hoặc với ip:

# ip tuntap add dev eth0 mode tap
# ip link ls dev eth0
7: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 500
    link/ether 0e:55:9b:6f:57:6c brd ff:ff:ff:ff:ff:ff

Có lẽ bạn nên thích phương thức thứ hai, như iplà công cụ mạng ưa thích trên Linux và có khả năng bạn đã cài đặt nó.

Ngoài ra, cả hai cách này đều tạo ra thiết bị nhấn với MAC tôi đoán là MAC cục bộ ngẫu nhiên, bạn có thể đặt MAC thành một giá trị cố định theo bất kỳ cách thông thường nào.


1
Đúng rồi! Chính xác là giải pháp tôi đã hy vọng, cảm ơn bạn rất nhiều :) Nó hoạt động như một giấc mơ.
Steen Schütt

1
Tôi có một vấn đề. Khi cố gắng thay đổi MAC bằng ip link set dev eth0 address 01:23:45:67:89:ab(Trong khi bộ điều hợp bị hỏng), nó nói RTNETLINK answers: Cannot assign requested address. Tôi cũng đã thử cài đặt macchanger, nhưng nó trả về một lỗi tương tự. Mọi thứ đã cố gắng như root.
Steen Schütt

3
@TimeSheep Đó không phải là địa chỉ MAC hợp lệ. Đặc biệt, đó là một địa chỉ multicast. Hãy thử 00: 23: 45: 67: 89: ab. Điều đó sẽ làm việc. Nhưng 02: 23: 45: 67: 89: ab sẽ tốt hơn. Xem, ví dụ: en.wikipedia.org/wiki/MAC_address#Address_details
derobert

À, cảm ơn. Tôi hoàn toàn quên rằng có những yêu cầu cho những thứ đó để làm việc. Tôi sẽ chỉ lấy cái tiếp theo mà nó tạo ngẫu nhiên và sử dụng nó. Có cách nào để giữ cho thiết bị bền bỉ trong quá trình khởi động lại thay vì tạo lại thiết bị và đặt lại địa chỉ của thiết bị khi khởi động với tập lệnh không?
Steen Schütt

@TimeSheep Không thực sự. Đó là một giao diện ảo, nó không tồn tại ở bất cứ đâu ngoài tâm trí của hạt nhân ... vì vậy khi bạn khởi động lại, nó đã biến mất.
derobert

4

Bạn cũng có thể đặt quy tắc udev để đặt cho thẻ mạng của mình tên bạn muốn:

https://wiki.archlinux.org/index.php/Network_Configuration#Change_device_name

Tất nhiên, bạn KHÔNG nên bảo udev gọi chúng là eth0, eth1, v.v. Maple làm gì nếu bạn chỉ có thẻ wifi?


Tôi không biết về Maple, nhưng tôi đã thấy các phần mềm khác được bảo vệ bởi các bản sao khác của Haiti, kiểm tra MAC của bạn và chỉ xem các giao diện mạng được gọi eth0eth1. Nếu bạn được gọi wlan0, quá tệ (trừ khi bạn biết cách đổi tên hoặc tạo giao diện ảo).
Gilles 'SO- ngừng trở nên xấu xa'

Nếu bạn chỉ có một thẻ wifi, tôi chỉ nghĩ rằng bạn đã hết may mắn. Tôi đã nói chuyện với một đại diện về nó, nhưng dường như họ không phải là người viết hệ thống cấp phép. Tôi đã nói với họ rằng các quy ước đặt tên rất có thể sẽ thay đổi và họ nên xem xét việc vá toàn bộ để có sự hỗ trợ tốt hơn. you are correct in your suspicions of the cause of the problem with the activation, particularly the issue with the Ethernet adapter name. Unfortunately, it is a limitation of the licensing software that it has to look for an "eth0" in order to find the Host ID of the system
Steen Schütt

Bất kỳ cơ hội nào bạn có thể sử dụng các quy tắc udev để tạm thời đổi tên NIC của mình thành eth0, sau đó xóa quy tắc đó và khởi động lại sau khi kích hoạt? Tôi thực sự không biết liệu luôn luôn thực sự, thực sự xấu khi đổi tên thẻ ethX của bạn, hoặc chỉ đôi khi.
Rainbowgoblin

@rainbowgoblin Không, nó kiểm tra với máy chủ mỗi khi nó khởi động, vì vậy nó sẽ bắt đầu cho tôi lỗi "Không thể nhận được ID máy chủ" sau đó. Dù bằng cách nào, giải pháp của derobert là hoàn hảo, và thậm chí không cảm thấy như vậy là một cách giải quyết.
Steen Schütt

2

Tôi đang xem xét một vấn đề rất giống với một máy tính không có card mạng có dây. Giải pháp này có vẻ tốt: http://jms.id.au/wiki/FakeEth0

Về cơ bản, ý tưởng là tạo / sửa đổi một vài tệp để tạo giao diện giả:

Trong /etc/modules-load.d/dummy.confadd:

# load dummy interface module
dummy

Trong /etc/udev/rules.d/70-persistent-net.rulesadd:

SUBSYSTEM=="net", KERNEL=="dummy0", NAME="eth0"

Sau đó /etc/network/interfacesthêm vào :

iface eth0 inet static
    hwaddress DE:AD:BE:EF:CA:FE

Bạn sẽ có thể thực hiện modprobe dummytại thời điểm này và kiểm tra để đảm bảo giao diện được thiết lập chính xác. Nó có thể không đặt địa chỉ mac nếu bạn sử dụng modprobe thay vì khởi động lại; trong trường hợp đó, liên kết ip được đặt dev eth0 address de: ad: be: ef: ca: fe.


-1

Giải pháp đơn giản nhất - mặc dù điều này chỉ hoạt động trên các hệ thống có một thẻ ethernet:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Arch Linux sử dụng "đặt tên dự đoán." Điều này tắt nó đi.


Tôi đã thử điều đó, nó chỉ làm rối tung tất cả và bộ điều hợp của tôi biến mất.
Steen Schütt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.