大佬见字如面,向您问好!
我有一台ubuntu server 20.04 双网卡。
network:
ethernets:
eno1:
addresses:
- 218.64.11.217/25
gateway4: 218.64.11.129
nameservers:
addresses:
- 114.114.114.114
search: []
eno2:
addresses:
- 10.10.11.4/24
nameservers:
addresses:
- 114.114.114.114
search: []
eno3:
dhcp4: true
eno4:
dhcp4: true
enp6s0f0:
dhcp4: true
enp6s0f1:
dhcp4: true
version: 2
eno1 能上网,且有公网ip。eno2 内网,无法上网。eno2 还有很多同级,同样无法上网。
我现在想实现 eno2 同级设备可以通过这台 ubuntu server 实现上网。当 eno2 同级设备把网关设置为10.10.11.4时,则可以上网。
方法1 使用iptables
开启ip转发
echo 1 > /proc/sys/net/ipv4/ip_forward
用iptables的nat功能
iptables -t nat -A POSTROUTING -s 10.10.11.0/24 -j MASQUERADE
方法2 使用firewalld
举个例子
firewall-cmd --zone=trusted --add-interface=eno2
firewall-cmd --zone=public --add-interface=eno1
firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone=trusted --add-masquerade
其实这两个意思差不多,都是用的 iptables 的 nat 功能。