WG配置随笔

最近配置了一个WG用于连接内网,特记录下相关的坑:

1. 首先是要确保udp端口可以成功互相访问,linux下面

nc -vvul 51820 (server)

nc -vvu xxx.xxx.xxx.xxx 51820 (client)

windows下面

ncat -vvul 51820 (server)

ncat -vvu xxx.xxx.xxx.xxx 51820 (client)

确保可以互相访问并发送接受信息

2. 设置两侧的wg配置,注意用

wg genkey > private

wg pubkey < private

可以快速产生一对密钥,然后interface设置本端的虚拟ip地址,注意子网不能用/32

peer设置对端的ip,用/32限制严格为对方的虚拟ip才可以访问

另一端直接reverse过来,注意最好用两对密钥

3. windows端安装tunsafe,并且安装合适TAP驱动,注意和openvpn的tap可能冲突。另外注意官方的windows程序利用TUN有些bug不好用。连接上去测试

ping linux端通过,(反向ping windows需要打开Windows防火墙! 所以建议还是用nc开一个tcp的端口互相发送测试)

4. 设置转发,

sysctl net.ipv4.ip_forward=1

net.ipv4.ip_forward=1

以及的防火墙设置,参考https://davidshomelab.com/access-your-home-network-from-anywhere-with-wireguard-vpn/ ; 如果没问题可以不用调

然后在服务器端的config里面设置自动建立iptables转发规则,参考https://davidshomelab.com/access-your-home-network-from-anywhere-with-wireguard-vpn/ 里面的postup和down

然后在客户端的peer里面添加内网的ip端,意思是访问此段直接从wg走

另外注意服务器端最好设置成xxx.xxx.xxx.1 默认网关的虚拟地址

5. 测试应该没问题。利用ping先测试服务器端,再测试内网的机器。

6. 如果需要debug 服务器端,利用

echo 'module wireguard +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
echo 'module wireguard -p' | sudo tee /sys/kernel/debug/dynamic_debug/control
开启或关闭内核log,
之后用journalctl -fek 查看日志debug

8. 开始关闭linux端的wg用 wg-quick up/down wgxxx

status 用wg show来看

 

 (update1: 更新两个很有用的命令,用来开启pve虚拟机里面的vm的serial串口,从而xterm

systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service

 

EOF

posted @ 2021-10-01 23:24  wdit-binlot  阅读(392)  评论(0编辑  收藏  举报