双网卡 iptables 做网关 实现局域网其它机器上网

发布时间 2023-10-28 10:21:23作者: 河在谈

A机器和B机器在同一个局域网,

A机器的网卡eno1可以上网,IP为111.111.111.111。A机器的网卡eno2不能上网,IP为:192.168.1.66。

B机器不能上网,B机器的网卡eno1 IP为192.168.2.80,B机器和eno2 IP为192.168.1.80。

A机器的eno2和B机器的eno2在同一网段,可以通信,如何实现B机器通过A机器上网?

 

在A机器上开启转发:

vim /etc/sysctl.conf

# 添加内容
net.ipv4.ip_forward=1

# 保存后执行
sysctl -p

 

在A机器上使用iptables转发:

iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
iptables -A FORWARD -i eno1 -o eno2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eno2 -o eno1 -j ACCEPT

 

在B机器上配置A机器eno2为网关,并配置dns:

network:
  ethernets:
    eno1:
      addresses:
      - 192,168,2,80/24
      #gateway4: 10.224.2.1
      #nameservers:
      #  addresses: [202.207.48.3, 202.207.48.4]
      #  search: []
    eno2:
      addresses:
        - 192.168.1.80/24
      dhcp4: no
      gateway4: 192.168.1.66
      nameservers:
        addresses:
        - 114.114.114.114
        search: []
  version: 2