请教一下 wireguard 的配置问题

14 天前
 chaniqure
```
[Interface]
PrivateKey = CI9zhwCcBEJ5aihfyAJEzY7dP9YOcPX5vJUbLXX4=
Address = 10.8.0.2/24
DNS = 223.5.5.5


[Peer]
PublicKey = pu5WlGdh7KY/UrpXLeJxSV4FGewvNx1BKwr8Ywbh4=
PresharedKey = YIE9Hot9dUqO7HcwcBf1Z45Nj4AxLp/9TUBoiB4Q=
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = mydomain:51820
```
上面的是我的 wireguard 配置,使用 wg-easy 搭建,搭建 wg-easy 的 ip 是 10.1.1.110 ,openwrt 是主路由,在 openwrt 进行了端口转发,但是我配置好了也没办法连上内部网络,请各位大神帮忙看一下原因
673 次点击
所在节点    问与答
18 条回复
pcxys
14 天前
建议排除一下,非同一运营商的问题,比如电信网络到联通 wireguard 服务器,估计就不行。
zhcode
14 天前
我也是用的 wgeasy ,不懂详细的配置,就把 docker compose 文件给你参考一下吧
wg-easy:
environment:
- TZ=Asia/Shanghai
# Change Language:
- LANG=chs
# ⚠️ Required:
# Change this to your host's public address
- WG_HOST=xxx.domain.com

# Optional:
- PASSWORD_HASH=xxxxxxxxxxxxxx
- PORT=51821
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=114.114.114.114,223.5.5.5
- WG_MTU=1392
- WG_ALLOWED_IPS=192.168.3.0/24
- WG_PERSISTENT_KEEPALIVE=25
- UI_TRAFFIC_STATS=false

image: ghcr.io/wg-easy/wg-easy:latest
container_name: wg-easy
volumes:
- ./config:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: always
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
SenLief
13 天前
openwrt 是主路由,为啥还要端口转发,看不懂
v2exkt
13 天前
你的流量是从 wireguard peer 端发送到 openwrt 的 51820 端口,然后 openwrt 的 51820 转发到安装 wg-easy 的机器,ip 是 10.1.1.110 ?

然后你的期望是从 wireguard peer 端访问 10.1.1.0/24 网段?

如果是我说的这种情况,你先 ping 一下 10.8.0.1 ,能通,就说明 wireguard 组网成功,但是你想访问 10.1.1.0/24 内网,你得将安装 wg 的那台机器加上路由转发,这样才能将流量转发出去,具体可以看看 linux 的相关的命令。

如果 ping 都 ping 不通,那就是 wireguard 组网失败了,从 wireguard 配置方面或者 openwrt 的配置排查问题。

实在不行转投 tailscale 吧
humbass
13 天前
想访问内部网络还需要路由上设置 net ,跟 wireguard 没啥关系。建议上 zerotier ,路由版本直接带了 net 功能!
chaniqure
13 天前
@SenLief wireguard 没有部署在 OpenWrt 上面,是部署在内网的 10.1.1.110 的一台服务器上面的
chaniqure
13 天前
@v2exkt ping 不通😂,搞不懂了,怎么会失败呢,我的 ddns 是没问题的,IPSec 那些都可以用,端口转发也配置了,不知道是哪里的问题,docker 的启动参数就那么几个
chaniqure
13 天前
@zhcode 谢啦,今晚上回去试试
SenLief
13 天前
你现在 openwrt 上配置试试能不能通
chaniqure
13 天前
@SenLief #9 OpenWrt 上面就是不会配置才弄到局域网服务器上面的,安装了插件,和搜到的视频里面不一样,少了很多东西
SenLief
13 天前
@chaniqure openwrt 自带 wg 的,网上一搜一把。如果你的 openwrt 有 docker ,用这个 https://github.com/wg-easy/wg-easy
chaniqure
13 天前
@v2exkt 大佬我现在能 ping 通了,我该怎么路由啊,我网络基础不太行,求指教
chaniqure
13 天前
@zhcode 我使用你的方案后,能 ping 通 10.8.0.x 的 ip 了,不过还是没办法访问其它服务
zhcode
13 天前
@chaniqure WG_ALLOWED_IPS 有没有改成你的局域网 CIDR
chaniqure
13 天前
@zhcode #14 还是不行,我的 wireguard 是部署在 局域网的一台设备上的,不是 OpenWrt 上面的,估计还需要做什么配置吧
chaniqure
13 天前
@zhcode #14 已经改成了局域网的 CIDR 了
v2exkt
13 天前
@chaniqure #12 你是使用 docker compose 部署的吗,那除了 docker 上的 ip 转发,也要开启宿主机的 ip 转发,还要指定路由 10.8.0.x 到你的 docker
同时你的路由器上也要指定路由,将 10.8.0.x 网段指向你安装 wg docker compose 的那台机器,不然你的路由器不知道怎么处理 10.8.0.x 网段的流量
综上,喜欢折腾的话,就继续试试,但是建议是不使用 docker compose ,复杂度有点高;或者直接使用 openwrt 的 wireguard ,一键组网
luis330
13 天前
和楼主你一样的部署方式,路由器映射进内网的 WG 服务器。WG 服务器的部署及配置和 2 楼的兄弟基本一样,目前用的正常。
只有一个区别,我的这个 WG 服务器是用的 PVE 下 LXC 模板建的,防火墙服务没有启用,所以转发正常。你可能需要根据你的防火墙版本查一下,在系统防火墙层面做允许策略。
这个是 redhat 下对 WG 防火墙的说明,参考一下:
https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/proc_configuring-firewalld-on-a-wireguard-server-by-using-the-command-line_assembly_setting-up-a-wireguard-vpn

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089189

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX