V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kaiyuan
V2EX  ›  问与答

异地路由器组网需要如何让内网互通?

  •  
  •   Kaiyuan · 2019-06-18 03:58:23 +08:00 · 7438 次点击
    这是一个创建于 1746 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务端是 OpenWrt 客户端是 AC87U。
    连上了,但是客户端可以 ping 服务端所在内网 IP 地址,但是服务端以外的 ping 不通。服务端就完全 ping 不通客户端。
    服务端是不是还要设置 NAT ?
    如果两个都是华硕路由就简单很多,直接导出文件,另一个导入就完成。现在用的原版 OpenWrt 没有一键配置。

    各种搜到的设置方法都尝试过,完全不知道问题出在哪里...

    配置文件:

    第 1 条附言  ·  2019-06-18 11:35:59 +08:00
    第 2 条附言  ·  2019-06-18 14:10:24 +08:00

    我的服务端配置文件错了!!! 让客户端访问服务端内网需要将服务端 网关推动给客户端...

    push "route 192.168.2.0 255.255.255.0 vpn_gateway 500"
    push "redirect-gateway def1"
    push "dhcp-option DNS 192.168.2.1"
    

    我没有加这个就不能访问...

    第 3 条附言  ·  2019-06-18 14:27:00 +08:00

    最终配置文件 192.108.2.0 是服务端网段 192.168.3.0 是客户端网段

    config openvpn 'ky49'
            option verb '3'
            option port '1194'
            option mode 'server'
            option tls_server '1'
            option keepalive '10 120'
            option ca '/etc/openvpn/ca.crt'
            option cert '/etc/openvpn/my-server.crt'
            option key '/etc/openvpn/my-server.key'
            option dh '/etc/openvpn/dh2048.pem'
            option tls_version_min '1.0'
            option enabled '1'
            option client_to_client '1'
            option cipher 'AES-256-CBC'
            option dev 'tun'
            option dev_type 'tun'
            option server '10.200.200.0 255.255.255.0'
            option status_version '2'
            option sndbuf '0'
            option rcvbuf '0'
            list push 'route 192.168.2.0 255.255.255.0 vpn_gateway 500'
            list push 'redirect-gateway dhcp'
            list push 'dhcp-option DNS 192.168.2.1'
            option client_config_dir '/etc/openvpn/ccd'
            list route '192.168.3.0 255.255.255.0'
    

    感谢大家的帮助。😂

    第 4 条附言  ·  2019-11-02 02:48:43 +08:00

    还有注意证书的有效期,需要 openssl.cnf 修改证书有效时长在生成证书,要不然一个月后就会遇到证书过期的情况。

    default_days	= 3650			# how long to certify for
    default_crl_days= 3650			# how long before next CRL
    
    20 条回复    2019-06-18 14:28:26 +08:00
    hongdaworks
        1
    hongdaworks  
       2019-06-18 06:17:13 +08:00
    两端都有公网 IP ?
    - - - - - - - - - -
    zerotier ( moon 节点建议国内自建)

    蒲公英智能组网(要付费) [滑稽.jpg]
    yzwduck
        2
    yzwduck  
       2019-06-18 07:41:07 +08:00
    要互通的话,不能用 NAT ;排查问题时主要查服务 /客户双方的路由表和防火墙,配合抓包来验证网络是否通畅。
    应该先解决服务端 ping 客户端的问题,既然能连上且分配到 IP,出问题的地方有可能是客户端的防火墙把这流量拦截掉了。
    ping 服务端外的网段的话,先查服务端有没有把流量转发出去(防火墙),然后查有没有收到返程流量(路由)。

    @hongdaworks 别捣乱,OP 已经能两端互联了,没必要用穿透。
    Love4Taylor
        3
    Love4Taylor  
       2019-06-18 07:49:39 +08:00 via Android
    WireGuard 请, OpenVPN 您是嫌路由负担不够重么.
    xenme
        4
    xenme  
       2019-06-18 08:07:31 +08:00 via iPhone
    ipsec,没公网 IP 需要穿透的话,zerotier 或者 wireguard 上面都提到了
    x86
        5
    x86  
       2019-06-18 08:08:51 +08:00 via iPhone
    懒人用的爱快的超级组网
    suhongbo
        6
    suhongbo  
       2019-06-18 08:35:22 +08:00
    我公司是上海和东莞组网,有动态公网 IP 走 VPN。其它的就不知道了。测试的时候,没有公网 IP 走不通,打电信要了公网 IP 后就通了。
    ysc3839
        7
    ysc3839  
       2019-06-18 10:32:54 +08:00 via Android
    @Love4Taylor wireguard 目前还不支持 layer 2。而且华硕的固件估计不支持 wireguard 吧?
    AntonChen
        8
    AntonChen  
       2019-06-18 10:49:59 +08:00 via Android
    直接 GRE 走什么 VPN
    Kaiyuan
        9
    Kaiyuan  
    OP
       2019-06-18 11:23:27 +08:00
    @Love4Taylor #3
    @xenme #4
    两边都是公网 IP,华硕路由不支持 WireGuard,要不然就不用那么麻烦。

    @yzwduck #2 现在的情况是服务端 ping 不通客户端,客户端 ping 不通服务端以外的设备。我用笔记本连服务端也是这样。路由表都是 10.200.200.0/24 的,但是这个网段也 Ping 不通...
    MonoLogueChi
        10
    MonoLogueChi  
       2019-06-18 11:27:19 +08:00 via Android
    UDP 打洞,然后异地组网,大概原理应该是这样的,具体我也没实践过。如果是公司使用的话,建议直接购买已经成熟的产品,不要自己投精力在这这上面,研发和维护的人力成本都够买好几套系统了。
    aoling
        11
    aoling  
       2019-06-18 11:37:03 +08:00
    异地主网 拉专线最稳定
    Kaiyuan
        12
    Kaiyuan  
    OP
       2019-06-18 11:38:12 +08:00
    @MonoLogueChi #10 只是想连接两所房子的内网,才会出现这种情况。两所房子相隔一条街。
    w0nglend
        13
    w0nglend  
       2019-06-18 11:41:31 +08:00 via Android
    服务端 关闭 duplicate-cn
    server.conf 添加 ccd,创建文件 xxx (你的 key 名称)
    内容:iroute xxxx 255...
    Love4Taylor
        14
    Love4Taylor  
       2019-06-18 12:06:53 +08:00
    @ysc3839 没完整的看完 看到个 OP 就以为两边都是了 23333

    不过啊 这个区域设置我看着有点不懂啊.
    Danswerme
        15
    Danswerme  
       2019-06-18 12:26:44 +08:00 via Android
    你有做到对方内网网段的路由吗?
    假设服务端内网网段为 192.168.1.0/24,
    客户端内网网段为 192.168.2.0/24,
    服务端 vpn ip 为 192.168.3.1,
    客户端 vpn ip 为 192.168.3.2,
    那么在服务端上做路由 dst.address = 192.168.2.0/24 gateway = 192.168.3.2,
    客户端上做路由 dst.address = 192.168.1.0/24 gateway = 192.168.3.1
    Kaiyuan
        16
    Kaiyuan  
    OP
       2019-06-18 12:30:06 +08:00
    @w0nglend #13 这样是允许客户端内网访问服务端,但是还是访问不了服务端内网其他机器。
    w0nglend
        17
    w0nglend  
       2019-06-18 12:55:00 +08:00 via Android   ❤️ 1
    @Kaiyuan 要想互通:
    服务器需要推送 内网段的路由给客户端。。
    并且打开转发。。
    并且去掉 duplicate-cn。。
    并且设置 ccd。。和 route xxx 255....在 Server.conf。。
    并且服务器端的内网其他机器网关是 VPN。。
    并且 VPN 客户端需要开启转发。。

    然后你在经过的所有节点上使用 tcpdump -n icmp 抓 ping 包。。
    yingfengi
        18
    yingfengi  
       2019-06-18 13:08:46 +08:00 via Android
    搞不懂你们干嘛不用 ipsec
    leavic
        19
    leavic  
       2019-06-18 13:19:20 +08:00
    zerotier 这么好用,为啥不用。
    Kaiyuan
        20
    Kaiyuan  
    OP
       2019-06-18 14:28:26 +08:00
    @leavic #19 硬件有限制,AC87U 没有刷梅林,是原版固件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5293 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 389ms · UTC 05:45 · PVG 13:45 · LAX 22:45 · JFK 01:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.