wireguard远程回家

异地组网神器

Posted by smilence86 on 2022-03-21 Viewed Times

远程访问通常可以用向日葵、frp实现,但都有限制,向日葵远程桌面还行,特定系统特定端口无法实现,比如远程访问raspberry pi的ssh端口,frp可以做到但每个服务都要映射端口比较繁琐,尤其是需要暴露的端口比较多:




换成vpn异地组网可以有效解决以上问题,在外远程访问家庭内网只需打开开关即可,使用ip、port跟内网一模一样,无需额外端口映射。

对比发现wireguard效率高,速度快。前提是家庭网络有公网IP,如果是固定公网IP直接绑定域名就行,如果是动态公网IP则用ddns动态绑定,ddns可以跑在家庭局域网任何一台机器,比如openwrt:


或者docker映射: home.example.com

1
docker run -d --name=cf-ddns --restart=always -e API_KEY=*** -e ZONE=example.com -e SUBDOMAIN=home oznu/cloudflare-ddns

在内网任何一台机器启动wireguard:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker run -d \
--name=wireguard \
-e WG_HOST=home.example.com \
-e WG_PORT=54321 \
-e PASSWORD=yourPassword \
-e WG_DEFAULT_DNS=192.168.2.1 \
-e TZ=Asia/Shanghai \
-v /path/wg-easy:/etc/wireguard \
-p 54321:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy

在openwrt -> 网络 -> 防火墙 -> 端口转发,假设wg运行在debian,其ip为192.168.2.103,让外部54321/udp转发到debian的54321/udp端口,:


访问wg后台管理界面: http://192.168.2.103:51821,密码登录进去添加一个客户端(peer):


手机扫码即可连接:


电脑导入配置文件:


至此就可以通过外网远程访问家里设备,比如路由器管理页:

如果家里挂了梯子,手机、电脑自动拥有科学上网能力。

没有公网ip则要使用vps中转,配置略复杂,而且通讯速度依赖vps带宽没有直连快。


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !