Centos 设置静态 IP 与 Windows 共享网络的问题
事情是这样的,我们都知道笔记本有两张物理网卡(一张有线,一张无线),Windows 10 还可以通过虚拟网卡开启 WIFI 热点(实际是通过物理无线网卡发射无线信号),将本机的网络共享给其他设备,那有什么方法可以反过来吗?
我的本机系统是 Windows 10,我手里有一张 RTL8188EU 的螃蟹网卡,由于安装了 Centos 的设备上并没有相应的驱动,所以我想将笔记本连接的 WIFI 网络通过笔记本的 WAN 口共享给这台设备,先让它联网安装驱动再使用无线网卡连接网络,首先声明一点,无法直接桥接有线网卡和无线网卡,因为两者的通信原理和使用的传输协议不同。下面是我实际的操作以及操作中遇到的问题。
1. 共享网络
Windows 系统的共享网络(包括开热点)实际上就是启用了主机的路由功能,中间做了一层 NAT 转换。
点击无线连接网卡的属性;
在弹出的窗口中共享给本地有线连接(以太网)。
现在本机的 WAN 口就作为 LAN 口来使用了,拿一根网线连接本机和其他设备,其他设备也能连通网络。但这还不够,由于我另一个设备是 CentOS 最小化安装的,我想通过 SSH 去连接操作这个设备,就需要给他设置一个静态的 IP 地址。
2. Centos 设置静态 IP
安装 Centos 7.9 系统的设备网卡情况:
插上网线后发现获取到 IP 地址的是 enp2s0 网卡,下面对其进行设置
查看目前 DHCP 方式分配的 IP 地址 和 网关地址。
查看 IP 地址;
1
ip a # 或者 ifconfig(需要 yum update && yum install -y net-tools)
查看网关地址;
1
route -n
设置静态 IP;
1
vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
修改内容如下:
1
2
3
4
5
6
7BOOTPROTO=static # 修改 dhcp 为 static
+ IPADDR=192.168.137.253 # 上一步获取到的 IP(从 IPADDR 到 DNS2 的配置全部紧跟 BOOTPROTO 添加)
+ NETMASK=255.255.255.0 # 子网掩码
+ GATEWAY=192.168.137.1 # 上一步获取到的网关
+ DNS1=114.114.114.114
+ DNS2=8.8.8.8
ONBOOT=yes # 修改 no 为 yesONBOOT=yes 代表在系统启动时激活网卡,如果不开启,每次设备重启后,需要手动使用
ifup
命令激活网卡才能连接网络,如:1
>ifup enp2s0
禁用网卡
1
>ifdown enp2s0
重启网络;
1
systemctl restart network
测试连通性。
1
ping www.baidu.com
现在设置好静态 IP 了,但如果重启共享网络的主机,被共享设备就会发现连接不上网络,最开始我认为网卡未被激活,实际上最后检测出是 Windows 的共享网络失败问题。
3. 设置 Windwos 解决重启后共享网络失败问题
「Win + R」打开窗口,输入
regedit
打开注册表;定位到:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess
,在空白处右击鼠标,新建 “DWORD(32位)值(D)”,名称叫做EnableRebootPersistConnection
,将数值数据改为1。重启测试。
4. CentOS 安装无线网卡驱动
查看网卡型号;
我的是 Realtek RTL8188EU Wireless LAN 802.11n USB 2.0 Network Adapter
查看目前系统安装的网卡驱动;
1
lspci | grep Ethernet
可以看见没有 RTL8188EU 的驱动,需要手动安装
如果 lspci 命令不可用,可以用以下方式,安装相应包
查看哪个包有 lspci 命令;
1
yum whatprovides */lspci
安装对应的包;
下载 RTL8188EU 驱动;
1
git clone https://github.com/lwfinger/rtl8188eu
其他->官网 REALTEK 驱动下载:https://www.realtek.com/zh-tw/?spm=a2c6h.12873639.article-detail.6.72524a92HsQDGH
注意:RTL8188EU 和 RTL8188 EUS 不是一个驱动,两者有很大的区别。
RTL8188EU 是一款 802.11n 无线网卡,支持 2.4GHz 频段,支持单双流,最高速率可达 150 Mbps。
RTL8188EUS 是一款 802.11ac 无线网卡,支持 2.4GHz 和 5GHz 双频段,支持单双流,最高速率可达867Mbps。
编译安装;
1
2cd rtl8188eu/
make all && make install报错:
1
>make: *** /lib/modules/3.10.0-1160.81.1.el7.x86_64/build: 没有那个文件或目录。 停止。
原因:向内核添加新的功能需要安装
kernel-header
和kernel-devel
并且建立需要的软连接。参考文章:
1
>https://www.cnblogs.com/beixiaobei/p/9041143.html
解决:
- 安装 kernel-headers;
1
yum install kernel-headers-$(uname -r)
- 安装 kernel-devel 到
/usr/src/kernels
;
1
yum install kernel-devel-$(uname -r)
- 根据上面报错提示创建内核软连接文件。
1
2# ln [OPTION] target DIRECTORY
ln -sfv /usr/src/kernels/3.10.0-1160.81.1.el7.x86_64 /lib/modules/3.10.0-1160.81.1.el7.x86_64/build其他命令:
1
2
3>lsmod # 查看加载的驱动列表
>rmmod modname # 卸载已加载的驱动
>modprobe -r modname # 如果用以上命令无法卸载,先执行此命令插入网卡,查看网卡状态;
1
lsusb # 需要安装 usbutils
RTL8188EU 外置网卡已经被识别(虽然显示的是RTL8188EUS,不影响)
注意:大部份外置网卡被激活后会有提示灯,这里提示灯并未闪亮,但不影响使用
构建内核模块依赖关系表,以便内核模块管理器可以根据需要加载所有需要的模块。
1
depmod -a
从内核加载 RTL8188EU 模块;
1
modprobe 8188eu
查看网卡设备;
1
nmcli d # 或者 ifconfig
使用图形化工具连接 WIFI;
1
nmtui
选择「编辑连接」
接下来就是水到渠成的操作,选择一个 WIFI,输入密码连接;
5. 再次设置静态 IP
进入配置目录;
1
cd /etc/sysconfig/network-scripts/
找到连接的那个 WIFI,编辑或添加如下内容;
1
2
3
4
5
6BOOTPROTO=static # 修改 dhcp 为 static
+ IPADDR=192.168.0.106
+ NETMASK=255.255.255.0
+ GATEWAY=192.168.0.1
+ DNS1=223.6.6.6
+ DNS2=114.114.114.114重启网络后再使用
nmtui
命令进入 UI 页面激活 WIFI 连接。
6. 解决 SSH 连接速度很慢问题
修改文件
/etc/ssh/sshd_config
1
vim /etc/ssh/sshd_config
修改内容如下:
1
2GSSAPIAuthentication no
UseDNS no重启 sshd 服务;
1
systemctl restart sshd
- UseDNS:当值为 yes 时,使用 DNS 查询,客户端连接时,先使用 DNS 反向查询客户端主机名,然后根据查询到的IP地址验证客户端身份。如果客户机的 IP 没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。
- GSSAPIAuthentication:允许客户端使用 Kerberos 认证的 SSH 认证方式,它可以提供更安全的 SSH 认证机制。但该接口在目标机器无域名解析时会有问题。
参考文章: