需求:想要随时随地远程到ubuntu电脑的内网中,ping通所有的内网ip,方便通过内网ip进行远程
一、ubuntu上安装配置wireguard服务
1,更新软件包并安装wireguard服务端软件
sudo apt update
sudo apt install wireguard
2,重新服务端的公钥和私钥
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
运行以上命令后会在/etc/wireguard目录下生成privatekey和publickey两个文件,里面存放的就是服务端的私钥和公钥,待会要使用
3,配置wireguard
新建一个wg0.conf文件
sudo vi /etc/wireguard/wg0.conf
并写入以下配置
[Interface]
# 服务端接口的ip地址
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp2s0 -j MASQUERADE
ListenPort = 51820
PrivateKey = 填写服务端的私钥[Peer]
PublicKey = 填写客户端的公钥
AllowedIPs = 10.0.0.2/32, 192.168.0.0/16
其中PostUp 和PostDown中的enp2s0是ubuntu系统运行ifconfig下的网口接口的名称
AllowedIPs 是允许通过的ip地址,将会在ubuntu上创建路由表,使用ip route查看路由表
4,启动服务和设置开机自启动和wg0接口
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
sudo wg-quick up wg0
在每次修改配置前需要先使用sudo wg-quick down wg0关闭接口wg0,修改完后再sudo wg-quick up wg0启动,否则修改不生效!
二、windows客户端安装配置wireguad
1,下载安装
下载wireguard-amd64-0.5.3.msi - tlanyan
2,打开wireguad客户端,点击新建隧道旁的箭头新建,会自动生成客户端的公钥和私钥
3, 进行配置
记得服务器要开放51820端口
保存完点击连接,然后在windows的CMD窗口中就能ping能ubuntu服务端的内网ip地址了
所有与ubuntu在同一个内网的ip都能够ping得通!
如果ubuntu(192.168.31.30)与其他同网段内的内网ip之前无法ping通可能是路由的问题,需要手动添加路由到路由表中
ip route add 192.168.31.0/24 dev enp2s0 proto kernel scope link src 192.168.31.30
以上命令的含义是将发送到192.168.31.0/24
网络的数据包通过enp2s0
网络接口发送,源IP地址为192.168.31.30