如何手动将IP添加到路由?


1

我需要在路由中添加IP。我通过Openvpn连接到实验室。我的路由现在看起来像这样;

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    600    0     0   wlan0
192.168.178.0   0.0.0.0         255.255.255.0   U     600    0     0   wlan0
192.168.193.0   0.0.0.0         255.255.255.0   U     0      0     0   tap0

我需要添加(例子)IP 20.20.20.0/24所以我可以通过tap0访问webserver 20.20.20.8。我不能让这个工作。如何设置正确的网关和IP?

Answers:


1

看看这里:

https://askubuntu.com/questions/612840/adding-route-on-client-using-openvpn

D)奖金选项! openvpn还有一个up / down指令,允许你在连接到vpn时启动脚本,这可以让你做任何你想要的事情。设置dns,路由等。但它要求您将命令存储在另一个文件中。

因此,如果您对openvpn客户端配置文件有以下内容

脚本安全2

up run-stuff-after-vpn-connect.sh

创建一个名为run-stuff-after-vpn-connect.sh的文件(确保它具有执行权限。并添加:

/ bin / sh的

route add -net 172.16.0.0/24 dev tun0   隧道启动后立即添加路线

所以你基本上把你的路由放到一个sh文件,例如my_route.sh(我假设192.168.193.1是你的OpenVPN GW本地IP地址)

#!/bin/sh
/usr/sbin/ip route add 20.20.20.0/24 via 192.168.193.1 dev tap0

然后添加到您的OpenVPN客户端的配置文件中

up /your path to/my_route.sh

它可能不起作用,因此您也可以通过systemd启动配置添加路由

[Unit]
Description=OpenVPN connection to %i

[Service]
Type=forking
ExecStart=/usr/bin/openvpn --cd /etc/openvpn --config /etc/openvpn/%i.conf --daemon openvpn@%i
ExecStartPost=/your path to/my-add-route.sh
ExecStop=/your path to/my-remove-route.sh

[Install]
WantedBy=multi-user.target

别忘了让脚本可执行,并始终使用脚本中命令的完整路径。不是'route'而是'/ sbin / route'或者放在你服务器的任何地方。使用 whereis route 找出完整的路径
Shirker

看着它,但它对我没有意义。我已经通过xx.xx.xx.xx尝试过像ip route add 20.20.20.0/24这样的命令,但我无法让它工作

@ BButter10别忘了 dev tap0 在你的结尾 route add 命令。您是收到错误还是只是默默地失败?用的更新你的问题 traceroute 20.20.20.8 输出。
HashHazard

谢谢Hollowproc。我不明白的是我必须通过不存在的网关添加IP。

ip route add 20.20.20.0/24 via(GATEWAY)dev tap0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.