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. 网线

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

Module                  Size  Used by
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服务关闭. 或者手动删除隐藏共享. 

更多更专业也更复杂的网络服务

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