1. 双机直连 2. 网线 3. 查看网卡 3.1 lspci命令, 查看板载及PCI网卡 3.2 lsusb命令, 查看USB网卡 3.3 dmesg,lsmod, 查看硬件加载信息 4. 手动设置IP地址 5. 开启简单网络服务 6. 其他
1. 双机直连
Q: 当前有2台电脑都是Windows与Linux双系统, 有时会需要互相之间传递文件.
硬件: 通过一条网线直连, 不依赖额外的路由器.
系统: 因为2台都是双系统, 所以有如下3种情况随时发生...
- (Linux to Linux)
- (Windows to Windows)
- (Linux to Windows) or (Windows to Linux)
IP设置: 这里看到同一台电脑, 双系统的IP设置为相同, 被访问时, 都是相同的地址.
- 电脑A(Windows & Linux):192.168.1.1/24
- 电脑B(Windows & Linux):192.168.1.3/24
软件: python https://www.python.org/downloads/
Linux下通常都会安装; windows下只需下载解压缩版本, 不必安装, 解压即可, 将目录添加到电脑属性的路径中.
2. 网线
- http://www.hp.com/hpinfo/abouthp/iplicensing/automdix.html
- https://en.wikipedia.org/wiki/Medium-dependent_interface#Auto_MDI-X
- https://zh.wikipedia.org/wiki/介质相关接口#自动MDI-X
- https://en.wikipedia.org/wiki/Modular_connector#8P8C
- https://zh.wikipedia.org/wiki/TIA/EIA-568
- https://zh.wikipedia.org/wiki/8P8C
8P8C,常被误称为RJ45,是以太网使用双绞线连接时常用的一种连接器插头。
8P8C(8 position 8 contact)的意思是8个位置(Position,指8个凹槽)、8个触点(Contact,指8个金属接点)。
- 在T568A中,与之相连的8根线分别定义为:白绿、绿;白橙、蓝;白蓝、橙;白棕、棕。
- 在T568B中,与之相连的8根线分别定义为:白橙、橙;白绿、蓝;白蓝、绿;白棕、棕。
连线信号
在百兆以太网(Fast Ethernet、10/100M Ethernet)中,仅使用1、2、3、6这四根线,以差分信号传输方式减少电磁干扰,其中1、2为TX(发送)(拧在一起),3、6为RX(接收)拧在一起。
因此平行线就是两端同为EIA-568-A或者EIA-568-B,而跳线就是一端使用EIA-568-A,另一端使用EIA-568-B的连接方法。
在千兆以太网(Gigabit Ethernet、1000M Ethernet)或者以太网供电(PoE, Power over Ethernet)中,全部的四对差分对都被使用。
3. 查看网卡
Windows系统下都是图形操作, 这里只记录Linux系统的命令行方式.
3.1 lspci命令, 查看板载及PCI网卡
$ lspci -v
$ lspci -k
00:19.0 Ethernet controller: Intel Corporation 82562GT 10/100 Network Connection (rev 03)
Subsystem: Hewlett-Packard Company Device 30d8
Kernel driver in use: e1000e
Kernel modules: e1000e
10:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
Subsystem: Hewlett-Packard Company Device 135d
Kernel driver in use: iwl3945
Kernel modules: iwl3945
3.2 lsusb命令, 查看USB网卡
$ lsusb
Bus 002 Device 016: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
$ lsusb
Bus 002 Device 018: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
$ lsusb.py
2-1 0bda:8179 00 1IF [USB 2.00, 480 Mbps, 500mA] (Realtek 802.11n NIC 00E04C0001)
$ lsusb.py
2-1 148f:3070 00 1IF [USB 2.00, 480 Mbps, 450mA] (Ralink 802.11 n WLAN)
3.3 dmesg,lsmod, 查看硬件加载信息
$ sudo dmesg |grep iwl3945
$ sudo dmesg |grep e1000e
[ 6.980802] e1000e: Intel(R) PRO/1000 Network Driver
[ 6.980808] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 6.981191] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 7.285699] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:1a:4b:60:a3:a6
[ 7.285717] e1000e 0000:00:19.0 eth0: Intel(R) PRO/10/100 Network Connection
[ 7.285746] e1000e 0000:00:19.0 eth0: MAC: 6, PHY: 7, PBA No: FFFFFF-0FF
[ 7.626080] e1000e 0000:00:19.0 enp0s25: renamed from eth0
$ sudo dmesg |grep -C 5 8179
[ 678.524400] usb 2-1: new high-speed USB device number 16 using ehci-pci
[ 678.675318] usb 2-1: New USB device found, idVendor=0bda, idProduct=8179, bcdDevice= 0.00
[ 678.675329] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 678.675333] usb 2-1: Product: 802.11n NIC|
[ 678.675336] usb 2-1: Manufacturer: Realtek
[ 678.675339] usb 2-1: SerialNumber: 00E04C0001
[ 678.726735] lib80211: common routines for IEEE802.11 drivers
[ 678.726741] lib80211_crypt: registered algorithm 'NULL'
[ 678.776406] r8188eu: module is from the staging directory, the quality is unknown, you have been warned.
[ 678.783575] Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_A_CUT_1T1R_RomVer(0)
[ 678.824238] usbcore: registered new interface driver r8188eu
$ sudo dmesg |grep -C 5 3070
[ 716.127755] usb 2-1: new high-speed USB device number 18 using ehci-pci
[ 716.301386] usb 2-1: New USB device found, idVendor=148f, idProduct=3070, bcdDevice= 1.01
[ 716.301395] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 716.301399] usb 2-1: Product: 802.11 n WLAN
[ 716.301401] usb 2-1: Manufacturer: Ralink
[ 716.524433] usb 2-1: reset high-speed USB device number 18 using ehci-pci
[ 716.680507] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 716.709018] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 0005 detected
[ 716.709300] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 716.710382] usbcore: registered new interface driver rt2800usb
$ lsmod
rt2800usb 28672 0
rt2x00usb 28672 1 rt2800usb
rt2800lib 139264 1 rt2800usb
rt2x00lib 90112 3 rt2800usb,rt2x00usb,rt2800lib
r8188eu 483328 0
lib80211 16384 1 r8188eu
iwl3945 122880 0
iwlegacy 147456 1 iwl3945
mac80211 1163264 5 iwl3945,iwlegacy,rt2x00lib,rt2x00usb,rt2800lib
cfg80211 1036288 5 iwl3945,iwlegacy,rt2x00lib,mac80211,r8188eu
e1000e 303104 0
4. 手动设置IP地址
列出网络设备
$ ip link
打开网卡
$ sudo ip link set enp0s25 up
手动设置IP地址
$ sudo ip address add 192.168.1.3/24 dev enp0s25
查看路由
$ ip route show
192.168.1.0/24 dev enp0s25 proto kernel scope link src 192.168.1.3 linkdown
添加路由
$ sudo ip route add default via 192.168.1.1 dev enp0s25
$ ip route show
default via 192.168.1.1 dev enp0s25 linkdown
192.168.1.0/24 dev enp0s25 proto kernel scope link src 192.168.1.3 linkdown
查看IP地址
$ ip address show
如果有安装相关的桌面版软件, 则可以如同Windows下一样, 图形化属性对话框内设置.
network-manager-applet, networkmanager...
5. 开启简单网络服务
进入需要分享的文件目录,开启简单网络服务(Windows与Linux下操作相似)
$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
按照上面IP设置为: 192.168.1.3, 开启简单网络服务默认端口为8000, 则同一网段其他主机可通过如下地址访问该文件目录: http://192.168.1.3:8000
这种分享文件的方式简单,安全,适应如下多种环境。
(Linux to Linux); (Windows to Windows); (Linux to Windows)
注: Window服务器的server服务, 默认是打开的, 且所有盘符都默认开启隐藏共享, 只要有权限的账户, 在局域网内任何一台机器都可以无限制的访问所有目录. 故建议将server服务关闭. 或者手动删除隐藏共享.
更多更专业也更复杂的网络服务
- https://httpd.apache.org/
- https://www.nginx.com/ ; https://nginx.org/en/
- 还有Windows服务器自带的IIS
6. 其他
如何设置一个本地测试服务器?
https://developer.mozilla.org/zh-CN/docs/Learn/Common_questions/set_up_a_local_testing_server
编辑 Web 服务器配置文件
https://www.ibm.com/docs/zh/was/9.0.5?topic=in-editing-web-server-configuration-files
https://wiki.archlinux.org/title/Network_configuration#IP_address_aliasing
将 IP 地址从接口中删除:
$ sudo ip address del address/prefix_len dev interface
删除所有符合条件的地址,例如某个特定接口的地址:
$ sudo ip address flush dev interface
要手动设置别名,可以使用 iproute2 执行:
$ sudo ip addr add 192.168.2.101/24 dev eth0 label eth0:1
删除别名:
$ sudo ip addr del 192.168.2.101/24 dev eth0:1
无线网卡命令有iw, iwd的iwctl, rfkill等
$ rfkill --output-all
ID TYPE DEVICE TYPE-DESC SOFT HARD
0 wlan hp-wifi Wireless LAN unblocked blocked
1 wlan phy0 Wireless LAN unblocked blocked
$ rfkill --output-all
ID TYPE DEVICE TYPE-DESC SOFT HARD
0 wlan hp-wifi Wireless LAN unblocked unblocked
1 wlan phy0 Wireless LAN unblocked unblocked