我家里用的小米 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
wangritian 7 天前
不考虑国内镜像而选择从家里上传?
|
![]() |
2
ilanting 7 天前
看下防火墙策略.
|
3
cxtrinityy 7 天前 via Android
捋一下,你是想通过 openvpn 来建立服务器和 openwrt 的连接,以使用 openwrt 上的梯子?
那首先你的梯子要监听 openvpn 网段或者直接 0.0.0.0 的端口 然后在服务器的 dockerd 启动进程里加上 HTTP_PROXY 和 HTTPS_PROXY 的环境变量,这样 docker pull 的时候才会走代理 这种问题可以直接问 deepseek 的 |
![]() |
4
codermali OP @wangritian 并非是放弃国内镜像,之前使用 aliyun 的镜像,但是 aliyun 镜像 latest 标签的镜像错乱啊
|
![]() |
5
wuruxu 7 天前
这个思路是可行的,我采用的 IPsec + wireguard , 只是跟你的技术方案不一样
|
6
datocp 7 天前 via Android
openvpn 我是没能力让它过墙,1 星期以后电信线路必挂
常用 socks5 代理,用 stunnel 过墙轻轻松。 |
![]() |
7
weiweiwitch 7 天前 via Android
这种情况,最好公司内架个代理入口。
现在需要用到代理的情况多了去了,不单单是 docker 拉镜像。 什么系统更新,拉取依赖,软件更新,项目维护的出口分流等等,几乎都要用到代理。 |
8
AS4694lAS4808 7 天前 via Android
@codermali 感觉好像上面老哥说的镜像不是镜像站,而是镜像代理服务吧?有的速度还是挺快的
|
![]() |
9
flynaj 7 天前 via Android
vpn 你用 softether,不需要划分另外的网段。
|
10
yanxin1111 6 天前 ![]() |
11
humbass 6 天前 via Android
搞复杂了,联网,爬墙是两个需求,分开做就行了。
|
![]() |
12
davidyin 6 天前 via Android
公私分开,若贵司有规定的话。
|
13
ochatokori 6 天前
如果你用的是 tun 模式,防火墙需要设置 openvpn 域允许转发到 clash 域
|
![]() |
14
codermali OP @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:~# |
![]() |
15
codermali OP @cxtrinityy 感谢提供了一条思路
|
![]() |
16
codermali OP @wuruxu 感谢。
@datocp 我也是电信宽带,目前来说没啥问题。 @weiweiwitch 没有这么多哦,目前来说只有这个需求。 @AS4694lAS4808 请问有推荐的吗,我查了一下,发现太多了。 @flynaj 感谢。不过 softether 这个我不太熟悉,如果能在现有的框架下解决肯定最好啦~ @yanxin1111 太感谢啦,我试试 |
![]() |
17
codermali OP @humbass 其实在出现问题后,我想过,在服务器上用 docker 部署一个 clash ,然后有需要的服务走代理到 clash 容器。不过还没有尝试,不知是否可行。
@davidyin 小公司,没有那么严格。用 docker 也是我的强烈要求,所以碰到问题也得解决。 @ochatokori 确实是 tun 模式。而且我在公司用的 windows 电脑,挂 VPN 回家里网络是没问题的,可以翻墙。但是 centos 就不行,我有想到 应该是 windows 和 centos 需要配置的地方不一样,但是,我查询不到相关的资料。你能具体说说吗 |
19
ochatokori 6 天前
@codermali #17 如果你的 windows 可以成功代理的话,那大概就不是 openwrt 设置的问题了,那就和我 13 楼说的没关系,openwrt 你应该已经设置了默认所有接口都允许转发。
centos 不行大概是没有代理所有流量,用 route -n 把路由表打印出来看看,贴的时候注意可能会有你的公网 ip |
![]() |
20
codermali OP @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 ~]# |
21
ochatokori 6 天前 ![]() @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 |
![]() |
22
codermali OP @ochatokori 已经修改,还是不对。那这么说,是不是第四条也不太对
|
![]() |
23
codermali OP @ochatokori 重启后,修改、删除的 route 恢复了
|
24
ochatokori 6 天前
@codermali #22 第四条不是默认路由应该没啥关系,还不行就不清楚了🥺
|
25
ochatokori 6 天前
@codermali #23 是的,这只是临时添加,连上 vpn 之后再操作。
需要测试好确认可行再写到 openvpn 的配置里 |
![]() |
26
codermali OP @ochatokori 好的,感谢,我再看看
|