Ubuntu实现双网卡外网访问

博客介绍办公网络使用场景,即处理日常工作并通过无线访问外网。因内外网段可控,考虑默认路由走外网,特定内网网段通过静态路由到对应网关,Metric是关键。还介绍查看网卡IP、路由表情况,添加示例静态路由,最终实现双网卡静态路由。

使用场景:办公网络用来处理日常工作事物,同时使用无线访问外网,搜索查询所需的材料。

由于内外网段是确定可控的,因此考虑默认路由走外网,需要访问的内网网段通过静态路由投递到对应的网关,这些设置中Metric是关键,表示通信的代价,数据包选择最小的值进行转发。

执行ifconfig查看当前网卡的ip状况。

enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 100.101.44.100  netmask 255.255.255.0  broadcast 100.101.44.255
        inet6 fe80::c687:b2a5:27e8:ebd4  prefixlen 64  scopeid 0x20<link>
        ether 8c:16:45:6e:15:ff  txqueuelen 1000  (Ethernet)
        RX packets 1544  bytes 166833 (166.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2885  bytes 282031 (282.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xf1300000-f1320000  

wlp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.100  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::ba5f:53e8:daa6:ccea  prefixlen 64  scopeid 0x20<link>
        ether 94:b8:6d:3b:e1:ff  txqueuelen 1000  (Ethernet)
        RX packets 90437  bytes 83894639 (83.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 83414  bytes 12013802 (12.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

其中的一些虚拟网卡忽略即可,enp0s31f6设备就是配置的重点。

执行route查看当前的路由表情况。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    600    0        0 wlp5s0
default         _gateway        0.0.0.0         UG    20100  0        0 enp0s31f6
100.101.44.0    0.0.0.0         255.255.255.0   U     100    0        0 enp0s31f6
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp0s31f6
192.168.43.0    0.0.0.0         255.255.255.0   U     600    0        0 wlp5s0

添加三条示例性的静态路由。

sudo route add -net 100.100.54.0/24 gw 100.101.44.1 dev enp0s31f6
sudo route add -net 100.100.57.0/24 gw 100.101.44.1 dev enp0s31f6
sudo route add -net 100.101.43.0/24 gw 100.101.44.1 dev enp0s31f6

之后的路由表如下所示。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    600    0        0 wlp5s0
default         _gateway        0.0.0.0         UG    20100  0        0 enp0s31f6
100.100.54.0    _gateway        255.255.255.0   UG    0      0        0 enp0s31f6
100.100.57.0    _gateway        255.255.255.0   UG    0      0        0 enp0s31f6
100.101.43.0    _gateway        255.255.255.0   UG    0      0        0 enp0s31f6
100.101.44.0    0.0.0.0         255.255.255.0   U     100    0        0 enp0s31f6
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp0s31f6
192.168.43.0    0.0.0.0         255.255.255.0   U     600    0        0 wlp5s0

由此实现双网卡的静态路由。

Ubuntu 24.04中配置双网卡实现外网访问,主要涉及网络接口的配置和路由表的设置。以下是一个详细的配置指南: ### 网络接口配置 Ubuntu 24.04使用`netplan`作为网络配置工具,它通过YAML文件来定义网络接口的行为。首先,需要确定两个网卡的名称,可以通过命令`ip a`或`ls /sys/class/net`查看系统中的网络接口。 假设内网网卡为`ens3`,外网网卡为`ens4`,并且希望内网连接到`192.168.1.0/24`子网,而外网则连接到互联网。 #### Netplan配置示例 编辑`/etc/netplan/01-netcfg.yaml`(或者你的系统中实际存在的配置文件): ```yaml network: version: 2 ethernets: ens3: dhcp4: no addresses: - 192.168.1.5/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 ens4: dhcp4: yes ``` 此配置为内网卡`ens3`分配了一个静态IP地址,并指定了默认网关和DNS服务器;外网卡`ens4`则使用DHCP自动获取IP地址[^1]。 保存更改后应用新的网络配置: ```bash sudo netplan apply ``` ### 路由设置 如果内网和外网分别属于不同的路由域,可能需要手动添加特定的路由规则。例如,确保所有到内网的数据流量都通过`ens3`接口,而其他流量通过`ens4`。 #### 添加静态路由 对于内网通信,可以添加如下静态路由: ```bash sudo ip route add 192.168.1.0/24 dev ens3 ``` 对于外网通信,默认路由通常已经由`ens4`上的DHCP设置好了。如果没有,可以手动添加默认路由: ```bash sudo ip route add default via <外网网关> dev ens4 ``` 注意替换`<外网网关>`为你实际的外网网关地址。 ### 持久化路由 为了使这些路由在重启后仍然有效,你需要将它们添加到`netplan`配置文件中,或者创建一个脚本来在启动时执行这些命令。一种方法是在`netplan`配置中使用`routes`字段: ```yaml network: version: 2 ethernets: ens3: ... routes: - to: 192.168.1.0/24 via: 192.168.1.1 metric: 100 ens4: ... ``` 另一种方法是创建一个systemd服务单元文件来运行自定义脚本,确保在每次启动时自动设置正确的路由。 ### 验证配置 最后,验证网络连接是否正常工作: - 使用`ping`测试与内网主机的连通性。 - 使用`curl ifconfig.me`检查是否可以从外网获取公共IP地址。 - 使用`ip route show`确认路由表是否正确。 ### 注意事项 - 确保防火墙规则允许必要的流量通过。 - 如果存在多个默认网关,可能会导致路由冲突,应调整`metric`参数以优先选择某个网关。 - 在某些情况下,可能需要禁用一个接口上的默认路由,以避免不必要的路由选择。 完成以上步骤后,Ubuntu 24.04应该能够成功地通过双网卡同时访问内网和外网资源。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值