我有两台计算机:计算机 1(Ubuntu 桌面)有 WiFi 连接和以太网端口,计算机 2(Ubuntu 服务器)只有以太网端口。我想让计算机 1 通过两台计算机之间的以太网连接与计算机 2 共享其互联网连接。
到目前为止我所做的:
- 我已使用以太网电缆将两台计算机连接在一起。
- 我已经为两台电脑创建了LAN
- 每台计算机都有一个静态 IP(在 中配置
/etc/netplan/*
):计算机 1 配置为192.168.2.1/24
,计算机 2 配置为其192.168.2.140/24
默认网关192.168.2.1
。 - 两台计算机都能互相 ping 通。
- 每台计算机都有一个静态 IP(在 中配置
- 我尝试
iptable
在计算机 1 上分别在 WiFi 和以太网接口 、wlp5s0
和之间设置转发enp4s0
(从 的输出中找到ifconfig
),但我没有任何运气。我对配置的了解不够iptables
,所以我找到的每一份指南或多或少都是盲目的。 - IP 转发已启用
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
我听说过“网络桥接”,但我不确定这是否可以在这种情况下使用。
在旁边:我知道如何使用网络管理器中的“共享到其他计算机”选项。我已经使用过它,而且效果很成功。我不喜欢它的是我无法设置静态 IP 地址。另外,我想知道如何从命令行执行所有这些操作。
答案1
- 将服务器的默认网关设置为桌面的IP地址。
ip route add 0.0.0.0 via 192.168.2.1
- 在桌面上:更改行/proc/sys/net/ipv4/ip_forward到1
- 在 iptables 中设置伪装
sudo iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o wlp5s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlp5s0 -o enp4s0 -j ACCEPT
- 我们需要添加一条帖子路由(这是在分组聊天中发现的)
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.139
- 取消注释该行net.ipv4.ip转发=1在文件中/etc/sysctl.conf
- 保存 iptables:
sudo iptables-save -t nat