Ubuntu 自带网络分享功能,但该功能很不稳定,往往断开连接后再连就无法使用了。 现在我们使用 DNSMASQ+IPTables 手动配置NAT.
Ubuntu 提供的 systemd-resolved 抢占53端口,首先禁用它。
systemctl stop systemd-resolvedsystemctl disable systemd-resolved
如果你之前配置过网络分享或已经用有线连接过电脑了,则需要这一步
运行 nm-connection-editor
删除所有有关你要分享的网卡的设置
安装
apt install dnsmasqservice dnsmasq stopnano /etc/dnsmasq.conf
编辑 /etc/dnsmasq.conf
,加入下列内容:
dns-forward-max=15000#eno1为你的要分享的网卡名interface=eno1dhcp-range=192.168.33.2,192.168.33.150,255.255.255.0,12h
nano /etc/resolv.conf
填写你的DNS服务器,例如:
nameserver 223.5.5.5nameserver 223.6.6.6nameserver 114.114.114.114
/etc/sysctl.conf
加入:
net.ipv4.ip_forward=1
运行:
sysctl -p
eno1为你的要分享的网卡名 enp2s0为有网的(被分享的)网卡名
ifconfig eno1 192.168.33.2iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADEiptables -A FORWARD -i eno1 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
上述内容重启后无效,可加入 /etc/rc.local
以开机自动应用。
systemctl enable dnsmasqsystemctl start dnsmasqsystemctl status dnsmasq
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。