Aza*_*mat 13 networking routing 13.04
我有 2 个连接:wlan0(gw:192.168.1.1)和eth0(gw:192.168.2.1)。
我的默认连接是wlan0,但我希望一些网站通过我的eth0加载,所以我为这些网站/IP设置了路由,如下所示:
route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
这有效,但不是永久性的(重新启动后消失)。我试着把这段代码放在/etc/network/interfaces这样的地方:
up route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动 Ubuntu 时,它在没有网络的情况下启动(它崩溃了)。我还将这些行放入该文件中:
auto eth0
address 192.168.2.125
gateway 192.168.2.1
netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
但是系统仍然可以在没有网络的情况下启动。
目前我已将route命令放入/etc/rc.local,它可以工作,但它不是永久性的,因为当我重新启动/重新连接我的eth0(出于某种原因)时,路由消失了。
一些注意事项:
我有一长串要路由的 IP。
我连接eth0 的路由器设置为 DHCP。
我尝试以静态和 DHCP 方式连接eth0。
谢谢你的帮助!
cha*_*aos 11
在我的系统,它的工作时,我做的文件夹中的脚本/etc/network/if-up.d/被称为script具有执行权限755:
#ls -la /etc/network/if-up.d/script
-rwxr-xr-x 1 root root 46 Okt 15 11:46 script
Run Code Online (Sandbox Code Playgroud)
在那里,您可以添加在建立连接时执行的命令,在您的情况下:
#cat /etc/network/if-up.d/script
#!/bin/bash
# Check for specific interface if desired
[ "$IFACE" == "eth0" ] || exit 0
# Adding additional routes on connection
route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
route add ...
route add ...
Run Code Online (Sandbox Code Playgroud)
您不需要在/etc/network/interfacesbesideauto eth0和 iface 中添加eth0 inet dhcp任何内容或您拥有的任何内容。NetworkManager 通过exec run-parts /etc/network/if-up.d在脚本中调用此目录中的脚本/etc/NetworkManager/dispatcher.d/01ifupdown。您可以通过(在我的情况下)进行测试:
# run-parts --test /etc/network/if-up.d
/etc/network/if-up.d/000resolvconf
/etc/network/if-up.d/avahi-autoipd
/etc/network/if-up.d/avahi-daemon
/etc/network/if-up.d/ethtool
/etc/network/if-up.d/ip
/etc/network/if-up.d/ntpdate
/etc/network/if-up.d/openssh-server
/etc/network/if-up.d/openvpn
/etc/network/if-up.d/script <---- your script here
/etc/network/if-up.d/upstart
/etc/network/if-up.d/wpasupplicant
Run Code Online (Sandbox Code Playgroud)
向接口添加路由的语法如下:
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
您不需要将设备添加到最后。
示例接口文件:
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
基于以下信息:How to set static routes in Ubuntu Server?