赞
踩
根据你的ifconfig
输出,上位机(Ubuntu系统)有多个网络接口,其中:
enp0s31f6
是有线网络接口,IP 地址为 192.168.1.11
。wlp0s20f3
是无线网络接口,IP 地址为 192.168.211.179
。你希望通过上位机的网络共享使下位机能够上网。我们可以通过enp0s31f6
接口来实现这个目标。
我们需要配置上位机以共享其无线网络连接(wlp0s20f3
)到有线网络接口(enp0s31f6
)。
安装必要的软件包
确保上位机已经安装了dnsmasq
和iptables
:
sudo apt update
sudo apt install dnsmasq iptables
配置dnsmasq
编辑/etc/dnsmasq.conf
文件,添加以下配置:
interface=enp0s31f6
bind-interfaces
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-host=xx:xx:xx:xx:xx:xx,192.168.1.102
请将xx:xx:xx:xx:xx:xx
替换为下位机的MAC地址,可以通过在下位机上运行ip a
命令来获取。
启用IP转发
编辑/etc/sysctl.conf
文件,取消以下行的注释:
net.ipv4.ip_forward=1
使设置生效:
sudo sysctl -p
设置iptables
规则
使用以下命令设置iptables
规则,以实现NAT(网络地址转换):
sudo iptables -t nat -A POSTROUTING -o wlp0s20f3 -j MASQUERADE
sudo iptables -A FORWARD -i wlp0s20f3 -o enp0s31f6 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp0s31f6 -o wlp0s20f3 -j ACCEPT
保存iptables
规则
保存iptables
规则以便重启后生效:
sudo apt install iptables-persistent
sudo netfilter-persistent save
启动dnsmasq
服务
启动并启用dnsmasq
服务:
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq
确保下位机的网络设置为自动获取IP地址和DNS服务器地址(DHCP)。
使用Network Manager:
使用Netplan(适用于Ubuntu 18.04及更高版本,这个我没有用,直接用上面的就可以了):
编辑Netplan配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
确保配置文件中有类似以下内容:
network:
version: 2
ethernets:
eth0:
dhcp4: true
保存文件并应用配置:
sudo netplan apply
重启下位机网络
重启下位机的网络服务:
sudo systemctl restart NetworkManager
确认下位机IP
使用以下命令确认下位机是否获得了正确的IP地址:
ip a
确认eth0
接口获得了192.168.1.102
的IP地址。
检查网络连接
在下位机上测试网络连接(等待一两分钟,不要着急):
ping baidu.com
通过上述步骤配置后,下位机应能够通过上位机的网络共享连接到互联网。如果仍有问题,请提供具体的错误信息或日志,以便进一步诊断。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。