文章目录[隐藏]
整体并不复杂,但是要作为记录,省的下次忘记。同时为了方便叙述,我这边是单公网IP配置。也就是只需要有一台机器通公网即可。这个是默认ubuntu没有公网IP但是ROS有公网IP。同时我这边要强调一下wg的原理,这个是三层的。所以wg接口有个自己的ip,然后组网双方有不同的网段ip。所以,配置的时候别配错了。具体看附件。
更新软件包
sudo apt update
安装wg
sudo apt install wireguard
开始配置
这里我特意把两个都写开,不然混在一起容易绕,但是大家遇到缺条件的情况请去另一侧看看。思路都是生成公私钥启动接口并且开防火墙互通。部分敏感信息我直接挡住了。公钥是互相交换的,私是和公钥对应的,可以不用写。
ubuntu侧
生成密钥对并查看公私钥
wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey
cat publickey
写接口配置文件
可以参照这个来,实际上还能更简单。看图就可以发现有些可以不写。同时发现有东西没办法写请看ROS侧。
再次强调这个是默认ubuntu没有公网IP但是ROS有公网IP。
[Interface]
PrivateKey = <你的私钥>
Address = 10.0.0.1/24
ListenPort = 51820
SaveConfig = true
[Peer]
PublicKey = <对端的公钥>
AllowedIPs = 10.0.0.2/32
Endpoint = <对端的IP地址>:51820
sudo nano /etc/wireguard/wg0.conf
图上是我本机WG的,所以忽略公私钥的问题。重点在于只需要填写五个即可。
这个允许的IP千万别0.0.0.0,到时候会连不上ssh的。因为这个的意思是把哪些IP的流量发到wg去。
启动接口并测试
开机自启
sudo systemctl enable wg-quick@wg0.service
ros侧
这边就是点点点,但是要知道自己在点什么。同时发现缺东西记得去ubuntu侧看一下。
添加新的wg接口
设置接口
红圈的名字和端口自己改,公私钥会自动生成。这个端口就是后续防火墙要开启的以及所有wg流量的出口端口。
APPLY后就是这样,记住公钥,到时候要用。
设置对端
这一步需要ubuntu的公钥,请先去ubuntu生成。基本上就是填图中的参数。允许的地址是允许对端发过来的地址。我一般来说写0.0.0.0/0,不然有可能连不上。非要安全问题就自己看着改。
添加地址
开防火墙
测试
这个ping是对端wg的ip。
附件1:IP配置指南
WireGuard 配置涉及至少两端:一端通常作为服务器,另一端作为客户端。下面是一个简单的示例,展示了两端如何配置 IP 地址和其他必要的参数。
服务器端配置 (假设服务器的公网IP为 192.0.2.1
)
生成密钥对 (如果还没有生成的话):
wg genkey | tee server_privatekey | wg pubkey > server_publickey
创建配置文件
/etc/wireguard/wg0.conf
:[Interface] PrivateKey = <服务器的私钥> Address = 10.200.200.1/24 ListenPort = 51820 SaveConfig = true [Peer] PublicKey = <客户端的公钥> AllowedIPs = 10.200.200.2/32
Address
是服务器在 WireGuard 网络中的 IP 地址。PrivateKey
是步骤1中生成的服务器私钥。PublicKey
是客户端的公钥。AllowedIPs
指定了客户端可以接收来自这些 IP 的数据包。
客户端配置 (假设客户端在内网或另一个网络)
生成密钥对 (如果还没有生成的话):
wg genkey | tee client_privatekey | wg pubkey > client_publickey
创建配置文件
/etc/wireguard/wg-client.conf
:[Interface] PrivateKey = <客户端的私钥> Address = 10.200.200.2/32 [Peer] PublicKey = <服务器的公钥> Endpoint = 192.0.2.1:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
Address
是客户端在 WireGuard 网络中的 IP 地址。PrivateKey
是步骤1中生成的客户端私钥。PublicKey
是服务器的公钥。Endpoint
是服务器的公网IP地址和端口。AllowedIPs = 0.0.0.0/0
表示所有流量都通过 VPN 路由。如果只需要特定流量通过 VPN,可以修改这个设置。PersistentKeepalive
保持 NAT 映射状态,有助于维持在 NAT 设备后面的客户端连接。
启动和测试
在服务器上启动 WireGuard:
sudo wg-quick up wg0
在客户端上启动 WireGuard:
sudo wg-quick up wg-client
测试连接是否成功,可以从客户端 ping 服务器的 WireGuard 地址
10.200.200.1
。
这是一个基础的两端配置示例。根据你的网络需求和安全策略,可能需要对配置进行调整。