在 Ubuntu 上连接两个网络段(如 个人终端A 192.168.1.10
和 个人终端B 192.168.2.10
),需要配置路由和网络转发功能,使这两个网段能够相互通信。以下是实现方法:
步骤 1:确认网络配置
1. 确保 Ubuntu 机器有两个网络接口,并且分别连接到了两个网段。
检查网络接口:
ip addr
假设:
- 接口
eth0
的 IP 是192.168.1.1/24
- 接口
eth1
的 IP 是192.168.2.1/24
2. 测试两个网段是否可以分别与 Ubuntu 机器通信:
ping 192.168.1.1
ping 192.168.2.1
步骤 2:在 ubuntu系统设备 上启用 IP 转发
Linux 默认禁止 IP 转发。需要启用该功能以允许路由流量。
1.临时启用 IP 转发(立即生效,重启后失效):
sudo sysctl -w net.ipv4.ip_forward=1
2. 永久启用 IP 转发: 编辑配置文件 /etc/sysctl.conf
,找到或添加以下行
net.ipv4.ip_forward = 1
应用更改:
sudo sysctl -p
步骤 3:设置路由规则
让 Ubuntu 作为路由器,在两个网段之间转发流量。
方法 1:通过静态路由
确保 192.168.1.x
和 192.168.2.x
的主机知道如何到达对方网段。
在 192.168.1.x
网段的网关设备(或主机)上,添加静态路由:
ip route add 192.168.2.0/24 via 192.168.1.1
在 192.168.2.x
网段的网关设备(或主机)上,添加静态路由:
ip route add 192.168.1.0/24 via 192.168.2.1
方法 2:使用 NAT(伪装)
如果无法修改其他设备的路由表,可以用 NAT 将流量伪装。
配置 iptables:
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
保存规则:
sudo apt install iptables-persistent
sudo netfilter-persistent save
步骤 4:验证配置
1. 从 192.168.2.x
网段的主机,测试访问 192.168.1.x
的主机:
ping 192.168.1.10
2. 从 192.168.1.x
网段的主机,测试访问 192.168.2.x
的主机:
ping 192.168.2.10
注意事项
- 防火墙配置:确保 Ubuntu 的防火墙(如
ufw
或iptables
)允许两个网段之间的通信
sudo ufw allow from 192.168.24.0/24 to any
sudo ufw allow from 192.168.9.0/24 to any
- 网关配置:确保每个网段的设备设置了默认网关,指向 Ubuntu 的 IP 地址。