V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
mingl0280
V2EX  ›  Linux

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

  •  
  •   mingl0280 ·
    mingl0280 · 2021-06-23 07:58:21 +08:00 · 2757 次点击
    这是一个创建于 1241 天前的主题,其中的信息可能已经有所发展或是发生改变。
    事情是这样的,我这里的 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 配错了也有可能……)
    18 条回复    2021-06-23 17:33:23 +08:00
    snuglove
        1
    snuglove  
       2021-06-23 08:06:42 +08:00 via Android
    所以你应该贴出你的这条防火墙配置
    mingl0280
        2
    mingl0280  
    OP
       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
        3
    0gys  
       2021-06-23 08:32:14 +08:00 via iPhone
    1.88 的路由贴出来
    archean
        4
    archean  
       2021-06-23 08:33:12 +08:00
    是不是应该配个 MASQUERADE,不然包怎么回来
    ysc3839
        5
    ysc3839  
       2021-06-23 08:57:47 +08:00 via Android
    只是为了路由转发的话建议使用 OpenWrt,因为相关配置基本是开箱即用的。
    chenset
        6
    chenset  
       2021-06-23 09:11:52 +08:00
    看下是不是缺这个

    ```

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

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

    类似 iptables -t nat -A POSTROUTING -o vpn 接口 -j MASQUERADE
    ysc3839
        16
    ysc3839  
       2021-06-23 11:12:34 +08:00
    @mingl0280 依赖某些库的话确实不好办,不过还可以考虑使用 Docker 。没记错的话 Docker 有个选项是使用系统网络接口,也许是可以用的。
    mingl0280
        17
    mingl0280  
    OP
       2021-06-23 16:37:12 +08:00 via Android
    @ysc3839 你意思是我本来 tar -xvf 一发加个 install 现在还得搞成 docker ?累不累啊……
    ysc3839
        18
    ysc3839  
       2021-06-23 17:33:23 +08:00
    @mingl0280 我说的前提是防火墙很难配置,用一个开箱即用的系统更划算。
    我之前尝试在 Ubuntu 上配 OpenVPN Server,NAT 转发、DHCP 、DNS 、UPnP 各种东西要写一大堆配置文件,最终还是直接用 OpenWrt 了。因此以后我遇到要配置 NAT 之类功能的时候都会优先选择 OpenWrt 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1237 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 23:46 · PVG 07:46 · LAX 15:46 · JFK 18:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.