V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
codermali
V2EX  ›  OpenWrt

求助,关于 OpenWrt 的使用

  •  
  •   codermali · 7 天前 · 1461 次点击

    我家里用的小米 AX3600 ,刷了 官方 OpenWrt 24.10.0 (最新),安装了 OpenVPN 和 OpenClash 。

    家里的设备访问 google 、youtube 、docker hub 没有障碍。

    公司有一台测试服务器,是使用 docker 进行部署。

    现在国内已经无法直接访问 docker hub 了。所以我想着在服务器上装一个 OpenVPN ,挂回家里的局域网,用于升级 Docker 镜像。

    这是背景介绍。

    家里 OpenWrt DHCP 网段是 192.168.88.0/24 ,OpenVPN 分配的网段是 192.168.8.0/24 。

    现在,服务器上已经安装了 OpenVPN 客服端,可以挂回家里的局域网。但是,依然无法访问 docker hub 。

    traceroute 追踪,走到 192.168.8.1 之后,就全是 * 了。好像根本就没走 OpenClash 。

    安装 OpenVPN ,是根据 官方文档: https://openwrt.org/docs/guide-user/services/vpn/openvpn/server

    有没有大佬能指导下,首先是我这个思路是否能实现?如果可以,那么我是哪里做错了,应该怎么改?

    第 1 条附言  ·  6 天前
    我尝试在我自己的一台阿里云服务器上部署了 OpenVPN ,系统也是 CentOS7.9 。结果是可以正常使用的。。。

    所以,OpenWrt 、OpenVPN 应该都没问题,可能是公司网络、或者测试服务器的配置问题。

    然后我直接在电脑上开了个 V2ray ,给 Docker 配置了代理,成功拉取镜像。感谢 10 楼 @yanxin1111 的小伙伴,万分感谢。

    至于测试服务器挂上 OpenVPN 依然无法翻墙的问题,迫于时间所限,可能无法深究。

    那就暂时结帖啦,感谢所有提供帮助的小伙伴们。
    26 条回复    2025-02-15 23:17:16 +08:00
    wangritian
        1
    wangritian  
       7 天前
    不考虑国内镜像而选择从家里上传?
    ilanting
        2
    ilanting  
       7 天前
    看下防火墙策略.
    cxtrinityy
        3
    cxtrinityy  
       7 天前 via Android
    捋一下,你是想通过 openvpn 来建立服务器和 openwrt 的连接,以使用 openwrt 上的梯子?
    那首先你的梯子要监听 openvpn 网段或者直接 0.0.0.0 的端口
    然后在服务器的 dockerd 启动进程里加上 HTTP_PROXY 和 HTTPS_PROXY 的环境变量,这样 docker pull 的时候才会走代理
    这种问题可以直接问 deepseek 的
    codermali
        4
    codermali  
    OP
       7 天前 via iPhone
    @wangritian 并非是放弃国内镜像,之前使用 aliyun 的镜像,但是 aliyun 镜像 latest 标签的镜像错乱啊
    wuruxu
        5
    wuruxu  
       7 天前
    这个思路是可行的,我采用的 IPsec + wireguard , 只是跟你的技术方案不一样
    datocp
        6
    datocp  
       7 天前 via Android
    openvpn 我是没能力让它过墙,1 星期以后电信线路必挂
    常用 socks5 代理,用 stunnel 过墙轻轻松。
    weiweiwitch
        7
    weiweiwitch  
       7 天前 via Android
    这种情况,最好公司内架个代理入口。
    现在需要用到代理的情况多了去了,不单单是 docker 拉镜像。
    什么系统更新,拉取依赖,软件更新,项目维护的出口分流等等,几乎都要用到代理。
    AS4694lAS4808
        8
    AS4694lAS4808  
       7 天前 via Android
    @codermali 感觉好像上面老哥说的镜像不是镜像站,而是镜像代理服务吧?有的速度还是挺快的
    flynaj
        9
    flynaj  
       7 天前 via Android
    vpn 你用 softether,不需要划分另外的网段。
    humbass
        11
    humbass  
       7 天前 via Android
    搞复杂了,联网,爬墙是两个需求,分开做就行了。
    davidyin
        12
    davidyin  
       7 天前 via Android
    公私分开,若贵司有规定的话。
    ochatokori
        13
    ochatokori  
       7 天前
    如果你用的是 tun 模式,防火墙需要设置 openvpn 域允许转发到 clash 域
    codermali
        14
    codermali  
    OP
       7 天前
    @ilanting root@OpenWrt:~# cat /etc/config/firewall

    config defaults
    option syn_flood '1'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'

    config zone 'lan'
    option name 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'
    list network 'lan'
    list device 'tun+'

    config zone 'wan'
    option name 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'
    list network 'wan'

    config forwarding
    option src 'lan'
    option dest 'wan'

    config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

    config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

    config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
    option target 'ACCEPT'

    config rule
    option name 'Allow-DHCPv6'
    option src 'wan'
    option proto 'udp'
    option dest_port '546'
    option family 'ipv6'
    option target 'ACCEPT'

    config rule
    option name 'Allow-MLD'
    option src 'wan'
    option proto 'icmp'
    option src_ip 'fe80::/10'
    list icmp_type '130/0'
    list icmp_type '131/0'
    list icmp_type '132/0'
    list icmp_type '143/0'
    option family 'ipv6'
    option target 'ACCEPT'

    config rule
    option name 'Allow-ICMPv6-Input'
    option src 'wan'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    list icmp_type 'router-solicitation'
    list icmp_type 'neighbour-solicitation'
    list icmp_type 'router-advertisement'
    list icmp_type 'neighbour-advertisement'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

    config rule
    option name 'Allow-ICMPv6-Forward'
    option src 'wan'
    option dest '*'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

    config rule
    option name 'Allow-IPSec-ESP'
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

    config rule
    option name 'Allow-ISAKMP'
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

    config rule 'ovpn'
    option name 'Allow-OpenVPN'
    option src 'wan'
    option dest_port '1194'
    option proto 'udp'
    option target 'ACCEPT'

    config include 'openclash'
    option type 'script'
    option path '/var/etc/openclash.include'

    root@OpenWrt:~#
    codermali
        15
    codermali  
    OP
       7 天前
    @cxtrinityy 感谢提供了一条思路
    codermali
        16
    codermali  
    OP
       7 天前
    @wuruxu 感谢。
    @datocp 我也是电信宽带,目前来说没啥问题。
    @weiweiwitch 没有这么多哦,目前来说只有这个需求。
    @AS4694lAS4808 请问有推荐的吗,我查了一下,发现太多了。
    @flynaj 感谢。不过 softether 这个我不太熟悉,如果能在现有的框架下解决肯定最好啦~
    @yanxin1111 太感谢啦,我试试
    codermali
        17
    codermali  
    OP
       7 天前
    @humbass 其实在出现问题后,我想过,在服务器上用 docker 部署一个 clash ,然后有需要的服务走代理到 clash 容器。不过还没有尝试,不知是否可行。
    @davidyin 小公司,没有那么严格。用 docker 也是我的强烈要求,所以碰到问题也得解决。
    @ochatokori 确实是 tun 模式。而且我在公司用的 windows 电脑,挂 VPN 回家里网络是没问题的,可以翻墙。但是 centos 就不行,我有想到 应该是 windows 和 centos 需要配置的地方不一样,但是,我查询不到相关的资料。你能具体说说吗
    codermali
        18
    codermali  
    OP
       7 天前
    @ilanting 你好,我把防火墙的配置贴上了,你可以帮我看看吗
    ochatokori
        19
    ochatokori  
       7 天前
    @codermali #17 如果你的 windows 可以成功代理的话,那大概就不是 openwrt 设置的问题了,那就和我 13 楼说的没关系,openwrt 你应该已经设置了默认所有接口都允许转发。

    centos 不行大概是没有代理所有流量,用 route -n 把路由表打印出来看看,贴的时候注意可能会有你的公网 ip
    codermali
        20
    codermali  
    OP
       7 天前
    @ochatokori 如下。公司的 IP 段是 192.168.2.0/24 。这个是启动了 OpenVPN 以后的路由表

    [root@txfw ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.8.1 128.0.0.0 UG 0 0 0 tun0
    0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 p7p1
    公网 ip 192.168.2.1 255.255.255.255 UGH 0 0 0 p7p1
    128.0.0.0 192.168.8.1 128.0.0.0 UG 0 0 0 tun0
    172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
    172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-0e1231a1c01b
    192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 p7p1
    192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
    192.168.88.0 192.168.8.1 255.255.255.0 UG 0 0 0 tun0
    [root@txfw ~]#
    ochatokori
        21
    ochatokori  
       7 天前   ❤️ 1
    @codermali #20 第一条路由的掩码不对劲。
    把旧的删掉
    route del -net 0.0.0.0 netmask 128.0.0.0
    重新加一条
    route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.8.1
    codermali
        22
    codermali  
    OP
       7 天前
    @ochatokori 已经修改,还是不对。那这么说,是不是第四条也不太对
    codermali
        23
    codermali  
    OP
       7 天前
    @ochatokori 重启后,修改、删除的 route 恢复了
    ochatokori
        24
    ochatokori  
       7 天前
    @codermali #22 第四条不是默认路由应该没啥关系,还不行就不清楚了🥺
    ochatokori
        25
    ochatokori  
       7 天前
    @codermali #23 是的,这只是临时添加,连上 vpn 之后再操作。
    需要测试好确认可行再写到 openvpn 的配置里
    codermali
        26
    codermali  
    OP
       7 天前
    @ochatokori 好的,感谢,我再看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1490 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:00 · PVG 01:00 · LAX 09:00 · JFK 12:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.