ubuntu 配置路由转发,我忘了啥……

2021-06-23 07:58:21 +08:00
 mingl0280
事情是这样的,我这里的 vpn 有个奇怪的 bug 会导致我电脑上 dns 失效。为了避免这种情况发生,我就开了个 ubuntu 的虚拟机做专门的 vpn,然后在路由器里配置了转发表,想让访问 vpn 的流量转发到 vpn 虚拟机。
现在的情况是,vpn 配置好了,虚拟机内可以访问 vpn 网络的资源,但是从路由器上转发到虚拟机的请求却不能访问 vpn 网络的资源。
已配置好的部分:
(VPN 虚拟机)
sysctl 的 net.ipv4.ip_forward = 1
iptables FORWARD 和 INPUT 链都设为了 Accept
机器 ip 192.168.1.88
ping 172.16.x.x 的服务器是正常的。
(路由器)
172.16.0.0/16 转发 192.168.1.88
172.25.0.0/16 转发 192.168.1.88
现在客户端上 tracert 到 172.16.x.x 地址的话是显示
C:\>tracert -d 172.16.x.x

通过最多 30 个跃点跟踪到 172.16.x.x 的路由

1 <1 毫秒 <1 毫秒 <1 毫秒 192.168.1.1
2 <1 毫秒 <1 毫秒 <1 毫秒 192.168.1.88
3 * * * 请求超时。


请问我是忘了配置啥东西?(或者 iptables 配错了也有可能……)
2619 次点击
所在节点    Linux
18 条回复
snuglove
2021-06-23 08:06:42 +08:00
所以你应该贴出你的这条防火墙配置
mingl0280
2021-06-23 08:13:30 +08:00
@snuglove

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.0/16 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
0gys
2021-06-23 08:32:14 +08:00
1.88 的路由贴出来
archean
2021-06-23 08:33:12 +08:00
是不是应该配个 MASQUERADE,不然包怎么回来
ysc3839
2021-06-23 08:57:47 +08:00
只是为了路由转发的话建议使用 OpenWrt,因为相关配置基本是开箱即用的。
chenset
2021-06-23 09:11:52 +08:00
看下是不是缺这个

```

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

```
mingl0280
2021-06-23 09:43:20 +08:00
@ysc3839 openvpn 那我就得找厂商要单独的 vpn 软件安装包了,基本上算做梦
Jirajine
2021-06-23 10:04:50 +08:00
别忘了回程路由,图省事 masquerade 一下也行。
no1xsyzy
2021-06-23 10:16:07 +08:00
你 ...88 的 Network Manager 是什么?
https://wiki.archlinux.org/title/Network_configuration#Network_managers
networkd 需要单独配置一下
ysc3839
2021-06-23 10:33:09 +08:00
@mingl0280 什么意思?我没有提 OpenVPN,我说的是 OpenWrt 。
mingl0280
2021-06-23 10:41:42 +08:00
@ysc3839 打错了,OpenWRT,vpn 软件不支持,得找厂家重新做,显然是不可能的。
ysc3839
2021-06-23 10:45:05 +08:00
@mingl0280 都是 Linux 系统,不会不支持吧?具体是怎么个不支持呢?
mingl0280
2021-06-23 10:47:38 +08:00
@ysc3839 二进制包,tar.gz 那种,没法在 openwrt 上用(库都不一样)
mingl0280
2021-06-23 10:47:56 +08:00
@chenset 对,就是忘了这个,加上就好了。
raysonx
2021-06-23 10:47:59 +08:00
路由器和虚拟机的 rp_filter 关掉了吗?路由器到到虚拟机是否有 NAT ?虚拟机到 vpn 的虚拟接口是否有 NAT ?
如果远程的 vpn 服务器没有到你本地 192.168.1.0/24 网段的静态路由,你需要在虚拟机上设置到 vpn 虚拟接口的 NAT·

类似 iptables -t nat -A POSTROUTING -o vpn 接口 -j MASQUERADE
ysc3839
2021-06-23 11:12:34 +08:00
@mingl0280 依赖某些库的话确实不好办,不过还可以考虑使用 Docker 。没记错的话 Docker 有个选项是使用系统网络接口,也许是可以用的。
mingl0280
2021-06-23 16:37:12 +08:00
@ysc3839 你意思是我本来 tar -xvf 一发加个 install 现在还得搞成 docker ?累不累啊……
ysc3839
2021-06-23 17:33:23 +08:00
@mingl0280 我说的前提是防火墙很难配置,用一个开箱即用的系统更划算。
我之前尝试在 Ubuntu 上配 OpenVPN Server,NAT 转发、DHCP 、DNS 、UPnP 各种东西要写一大堆配置文件,最终还是直接用 OpenWrt 了。因此以后我遇到要配置 NAT 之类功能的时候都会优先选择 OpenWrt 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/785208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX