【Ubuntu18】Ubuntu18.04下双网卡内外网设置

写在开篇:在使用双网卡搭建dhcp server的时候(有兴趣可以看上一篇文章,有搭建过程),遇到了双网关ping不通的问题,在同事帮助下解决了问题,解决的思路与下文转载的这篇有些像,很值得参考。(话说这个同事用的也是绿色界面,让我一度以为这篇文章是不是就是他本人hhh)

 

 

在安装了18.04服务器版本后,要对网关进行配置,在之前默认都在/etc/network/interfaces配置文件上配置

然后习惯性的重启网络

systemctl restart network
提示无效

重启机器后,这个网卡也是没用生效,说明配置文件没有起作用。

在查询一番资料后,发现,之前那些操作是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

cd /etc/netplan 进入文件夹

打开yaml文件

vim /etc/netplan/50-cloud-init.yaml


文件的布局看起来就像这样:

network:
    Version: 2
    Renderer: networkd
    ethernets:
       DEVICE_NAME:
          Dhcp4: yes/no
          Addresses: [IP/NETMASK]
          Gateway: GATEWAY
          Nameservers:
             Addresses: [NAMESERVER, NAMESERVER]


 

主要是配置ethernets里的参数:

DEVICE_NAME 是需要配置设备的实际名称。
Dhcp4: yes / no 代表IPv4是否启用 dhcp 对应的IPv6 就是Dhcp6:yes / no
Addresses 是设备的 IP 地址。
NETMASK 是 IP 地址的掩码。
GATEWAY 是网关的地址。
NAMESERVER 是由逗号分开的 DNS 服务器列表。
例如以下这样的配置

network:
    version: 2
    renderer: networkd
    ethernets:
       enp1s0:
       dhcp4: no
       addresses: [192.168.1.230/24]
       gateway: 192.168.1.254
       nameservers:
          addresses: [8.8.4.4,8.8.8.8]


配置完后,可以使用测试命令看配置是否成功

sudo netplan try

 


上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。

如果对配置完全没问题了,可以直接使用 应用新配置的命令

sudo netplan apply


通过ifconfig命令可以查看网卡是否获取到IP

网卡1是我们设置的静态固定ip,连接30网段的内网,网卡2是我们设置的DHCP ,连接0网段的可通外网。

互相ping了30网段的机器和0网段的机器,都是显示通讯正常。

但是笔者的笔记本接入的是无线网的2网段,发现ping不通网卡2的192.168.0.70。但是笔记本能Ping通0网段的网关,网卡2也可以Ping通2网段的网关。于是就思考,是否是系统的路由转发有问题了

sudo route -n


 出现以下的信息 

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.169.30.254  0.0.0.0         UG    100    0        0 enp1s0
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 enp2s0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enp2s0
192.168.0.254   0.0.0.0         255.255.255.255 UH    100    0        0 enp2s0
192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 enp1s0


发现有两条默认路由,0.0.0.0 都指向了两个不同的网卡出口和默认网关。对于指向30.254的这条默认网关是没用的

执行

sudo route del default gw 192.168.30.254


现在从笔记本就可以远程连接0.70设备了。

本以为这样就解决问题了,连接完设备,把文件部署好后,重启下系统,发现又连接不上了

再次登陆设备检查,发现路由表中已删除的默认路由又出现了,也就是说route del只是临时删除,重启设备或者类似netplan apply 重启服务的操作都会让默认路由重新生成。在又一番查找资料后,发现,默认路由是根据你网关配置自动生成的,那我在网卡1中不设置网关,30网段的通信都是指向型的通信,都是内网固定IP这样,没有网关并不会影响通信。于是进配置文件修改

如下

删除了enp1s0的gateway.这里要删除整行,不能就删除网关ip,不然重启服务后,会提示你网关所在的行数里缺少参数,需要填入IP地址。

修改完配置文件后,重启网络

sudo netplan apply


查看路由表

sudo route -n

完美。各自Ping通了内外网。 
————————————————
版权声明:本文为优快云博主「大橘为重之大橘已定」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/tjsxin/article/details/94390346

### 双网卡内外网切换解决方案 对于双网卡配置下的内网无法访问问题,主要涉及网络接口优先级设置以及路由表管理。当遇到通过有线连接(通常分配静态 IP 地址或特定范围的私有 IP 地址)无法访问某些资源而无线连接能够正常工作的情况时,这可能是由于默认网关的选择不当造成的。 #### 设置网络接口优先级 为了确保内网流量被正确导向至对应的物理适配器,在操作系统层面调整两个网络接口的绑定顺序非常重要。以 Windows 系统为例: 1. 打开命令提示符并输入 `ncpa.cpl` 来查看当前所有的网络连接; 2. 使用鼠标右键点击任意一个网络图标选择“属性”,接着再点击“Internet 协议版本 4 (TCP/IPv4)”选项进入其属性页面; 3. 进一步点击下方的“高级...”按钮,在弹出窗口中的“IP 设置”标签页里可以看到各个网络接口列表及其度量值(metric),较低数值表示较高优先级;因此应将用于访问公司内部服务的那个网口设为更低的度量值来提高它的优先权[^2]。 #### 修改主机路由表 如果上述方法未能解决问题,则可以通过手动编辑本地计算机上的路由表来进行更精确控制。具体操作如下所示: ```bash route add -p 10.26.6.0 mask 255.255.255.0 <ethernet_gateway> metric 1 if <interface_index> ``` 这里 `<ethernet_gateway>` 是指有线路由器所提供的默认网关地址,而 `<interface_index>` 则代表对应于有线网卡的实际索引号。此命令会创建一条永久性的路由记录,使得目标子网(`10.26.6.x`)的数据包总是经由此路径传输。 另外值得注意的是,在多网卡环境中,默认情况下系统会选择具有最高优先级(即最低metric值) 的活动网卡作为发送数据的主要通道。所以即使存在两条通往相同目的地的不同链路,也只会有一条真正起作用除非特别指定其他规则[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值