ubuntu配置wireguard和ROS互联

整体并不复杂,但是要作为记录,省的下次忘记。同时为了方便叙述,我这边是单公网IP配置。也就是只需要有一台机器通公网即可。这个是默认ubuntu没有公网IP但是ROS有公网IP。同时我这边要强调一下wg的原理,这个是三层的。所以wg接口有个自己的ip,然后组网双方有不同的网段ip。所以,配置的时候别配错了。具体看附件。

更新软件包

sudo apt update

file

安装wg

sudo apt install wireguard

file

开始配置

这里我特意把两个都写开,不然混在一起容易绕,但是大家遇到缺条件的情况请去另一侧看看。思路都是生成公私钥启动接口并且开防火墙互通。部分敏感信息我直接挡住了。公钥是互相交换的,私是和公钥对应的,可以不用写。

ubuntu侧

生成密钥对并查看公私钥

wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey
cat publickey

file

写接口配置文件

可以参照这个来,实际上还能更简单。看图就可以发现有些可以不写。同时发现有东西没办法写请看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去。

file

启动接口并测试

file

开机自启

sudo systemctl enable wg-quick@wg0.service

file

ros侧

这边就是点点点,但是要知道自己在点什么。同时发现缺东西记得去ubuntu侧看一下。

添加新的wg接口

file

设置接口

红圈的名字和端口自己改,公私钥会自动生成。这个端口就是后续防火墙要开启的以及所有wg流量的出口端口。

file

APPLY后就是这样,记住公钥,到时候要用。
file

设置对端

这一步需要ubuntu的公钥,请先去ubuntu生成。基本上就是填图中的参数。允许的地址是允许对端发过来的地址。我一般来说写0.0.0.0/0,不然有可能连不上。非要安全问题就自己看着改。

file

添加地址

file

file

开防火墙

file

测试

这个ping是对端wg的ip。

file

附件1:IP配置指南

WireGuard 配置涉及至少两端:一端通常作为服务器,另一端作为客户端。下面是一个简单的示例,展示了两端如何配置 IP 地址和其他必要的参数。

服务器端配置 (假设服务器的公网IP为 192.0.2.1)

  1. 生成密钥对 (如果还没有生成的话):

    wg genkey | tee server_privatekey | wg pubkey > server_publickey
  2. 创建配置文件 /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 的数据包。

客户端配置 (假设客户端在内网或另一个网络)

  1. 生成密钥对 (如果还没有生成的话):

    wg genkey | tee client_privatekey | wg pubkey > client_publickey
  2. 创建配置文件 /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

这是一个基础的两端配置示例。根据你的网络需求和安全策略,可能需要对配置进行调整。

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇