无法build立静态主机路由 – “SIOCADDRT:没有这样的进程”

在我的办公室里,有一台Windows Server 2008路由器192.168.16.1,这是我们的默认网关。 这通过我们的主要互联网连接发送数据。 这完美的作品。

192.168.16.1也有另一个目前闲置的互联网连接。 这连接到一个路由器,192.168.1.254,然后连接到我们的次要互联网连接。

我已经设置了路由和远程访问将192.168.1。*范围路由到我们的内部networking,并且我能够从IP地址为192.168.16.22的桌面ping 192.168.1.254。

我在同一个办公室里有一个非常密集的上传和下载任务,所以我想要build立一个静态路由,所以我不捆绑我们的主要互联网连接,并影响我的同事。 所以,我的计划是用一个静态路由来设置这个盒子。

在Linux机器上,我能ping通192.168.1.254,但是我无法在我们的数据中心中添加一条静态路由到目标服务器:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0 SIOCADDRT: No such process 

从广泛的谷歌search,这个错误消息似乎表明,我无法访问192.168.1.254build立一个路线,但我可以ping它。 我试图添加一个静态路由到192.168.1.254,完美的工作,但这并没有解决问题(如预期)。

由于我的背景是软件开发,而不是系统pipe理,所以在networking方面我还不够先进。 我将非常感谢任何build议。

感谢您的时间。

桌面上的192.168.16.0/24?

你不能通过你没有直接连接的网关添加一条路由(到任何目标),因为你的计算机不知道如何通过默认路由find路由器。

如果“在为networking处理stream量的网关设置主机路由之前,您尝试为networking设置路由,则可以获得”SIOCADDRT:无此过程“错误。

例如对于本地 – > 172.19.0.1 – > 172.19.0.xx

 [root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0 SIOCADDRT: No such process 

回答:首先创build一个主机路由,然后创build一个networking路由。

例如对于有问题的networking:本地 – > 192.168.1.254 – > 123.123.123.123

 sudo route add -host 192.168.1.254 dev eth0 sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0 

静态路由仍然会加载networking ,我想这取决于;)。 上传/下载stream量必须通过networking。 所以会影响networking的其他用户。 如果您希望减less对其他networking用户的影响,您可以通过带宽限制stream量或将stream量移至较安静的小时。 例如rsync具有良好的带宽限制选项。

我有一个路由和SIOCADDRT类似的问题。 本地 – > dockerserver – > dockercontainer。 添加主机路由,然后networking路由使路由工作在一个方向。

这帮助我https://support.symantec.com/en_US/article.TECH142841.html

完整路由示例,路由工作两种方式:

 dockerserver=172.19.0.1 dockerservernet=172.19.0.0 dockercontainer=172.19.0.25 local=192.168.111.23 localnet=192.168.111.0 ### 0. create host route for gw and net route local->docker [root@local]# route add -host $dockerservernet dev eth0 [root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0 ### 1. route on dockerserver to local [root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1 [root@dockerserver ~]# ping $local ### 2. route FROM dockercontainer to local (via gateway dockerserver) [root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1 [root@dockercontainer /]# ping $local 

关于在运行Ubuntu的AWS EC2实例中设置持久路由问题的部分问题,通过AWS重新启动,停止并启动的静态路由的正确位置是/etc/rc.local

在该文件中,您需要将路线放在最后一行上方的行中。 你的线应该看起来就像这样:

 route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX 

运行sudo命令将在重新引导时丢失。