Ubuntu 双网卡配置

950 阅读2分钟

Ubuntu 双网卡配置

目的

实现客户机连接内网服务器进行上网

机器环境

ubuntu桌面版20.04 PC一台

Windows 10 PC一台

Intel i350t4 4网口网卡

网络拓扑图

图片

实现思路

1. 安装网卡驱动,并将外网网线连接至Ubuntu机器网口1

网卡通过PCIE接口接入,外网网线连接网口1,系统开机,配置网络使其能上外网

注意: 由于我们的ubuntu机器是20.04版本的,网络配置是使用的netplan,所以要修改/etc/netplay/xxxx.ymal 进行配置

# Let NetworkManager manage all devices on this system
network:
  ethernets:
    enp2s0f2:
      addresses: [192.168.20.1/23]
      dhcp4: no
      dhcp6: no
    enp2s0f3:
      dhcp4: yes
      dhcp6: yes
  version: 2
  renderer: networkd

最后我们执行netplan apply命令来应用此设置,ipconfig命令来查看IP是否获取成功

设置

2. 个人PC机器通过网线连接网卡2

Windows PC网线连接ubuntu网口2,然后配置Windows 网络,修改为同一网段静态IP,并设置DNS,网关等配置 Windows PC 配置

注:这里的DNS不设置的话Windows PC会无法连接外网

3. 设置ubuntu机器路由表并开启路由转发

开启路由转发功能(默认关闭,需要手动开启),修改/etc/sysctl.conf文件,取消掉 net.ipv4.ip_forward=1 注释即可 /etc/sysctl.conf文件

配置路由表,使Windows PC可以上外网,此处命令行设置后重启机器就失效了

iptables -t nat -A POSTROUTING -o 外网网卡名 -j MASQUERADE
iptables -A FORWARD -i 外网网卡名 -o 内网网卡名 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i 外网网卡名 -o 内网网卡名 -j ACCEPT

4. 设置路由表

上面路由表在命令行配置完成之后,重启机器就失效了,要保证每次开机不用重新设置。我们要创建一个开机服务

创建/etc/rc.local文件

/etc/rc.local文件

设置service

nano /etc/systemd/system/rc-local.service

文件内容

[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

rc.local设置权限

chmod +x /etc/rc.local

启用服务

systemctl enable rc-local

启用服务

systemctl start rc-local.service

测试

Windows PC 与ubuntu 都可上外网且都可相互通信,配置完成 测试