AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[wireguard](server)

Martin Hope
southmountain
Asked: 2024-09-11 17:11:29 +0800 CST

同一服务器上的两个 wireguard 接口具有相同的端口 (51820),但 IP 范围不同

  • 5

我正在尝试在服务器上设置两个(或更多)具有相同端口但不同(不重叠) IP 范围的 wireguard 接口。

端口相同的原因是由于连接被转发到 wireguard 服务器上的端口 51820,我们希望避免在 wireguard 服务器之外更改详细信息。

我的想法是将本地地址端口从当前的 0.0.0.0:51820 更改为例如 wg0 的 10.0.0.0/24:51820 和 wg1 的 10.0.1.0/24:51820。这可行吗?还是我这个解决方案选错了方向?

ip address show wg0 给了我正确的 ip 地址:(10.0.0.1/24,wg1 为 10.0.1.1/24),但 ss -tuln 显示本地地址端口为 0.0.0.0:51820。

我还想删除端口 51820 上与 wg0 和 wg1 对应的 IP 范围之外的所有消息。

服务器在 ubuntu 22.04.4 LTS 上运行。

澄清:

问题是我无法添加具有相同监听端口但不同 IP 范围的第二个接口。

例如:wgX.conf 为:
[Interface]
PrivateKey = unique-key-for-each-X
ListenPort = 51820

命令:ip link add dev wg0 type wireguard
ip address add dev wg0 10.40. 0 .1/24
wg setconf wg0.conf
ip link set up dev wg0

这工作正常,但是当我在不同范围但相同的 listenPort 上添加第二个接口时:

ip link add dev wg1 type wireguard
ip address add dev wg1 10.40. 1 .1/24
wg setconf wg1.conf
ip link set up dev wg1

返回错误“无法设置接口 wg1:RTNETLINK 答案:地址已在使用中”
ip address show wg0 返回
wg0:<POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.40.0.1/24

ss -tuln 返回
udp ... 0.0.0.0:51820 ...

wireguard
  • 2 个回答
  • 51 Views
Martin Hope
Alexander Pravdin
Asked: 2024-05-30 19:26:49 +0800 CST

如何阻止 WireGuard 客户端的互联网访问但允许 LAN?(并拒绝客户端之间的连接)

  • 5

我有一个 WireGuard VPN 服务器。所有客户端都从其wg0接口连接到任何地方。我需要阻止来自此接口的所有流量(LAN IP 地址范围除外)的互联网访问。同时,主机应该可以访问任何地方。我还需要阻止客户端之间的流量。我该怎么做?我想我需要配置PostUp和PostDown配置值,但我没有足够的经验来正确做到这一点。我当前的设置如下:

PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

我应该在这里添加什么才能正确配置 iptables 呢?

PS:我知道在客户端上配置AllowedIPs设置的选项。但问题是,如果客户端将此设置更改为0.0.0.0/0,则所有流量都将通过隧道。但我需要在服务器级别阻止这种可能性。

wireguard
  • 1 个回答
  • 166 Views
Martin Hope
Yoel Navas Escalante
Asked: 2022-11-19 08:43:13 +0800 CST

“非常高”(可能?)MTU 在 Wireguard 接口上自动设置

  • 7

所以,我有一个运行在 Amazon Lightsail 上的 VPS,我在上面安装了 wireguard;我这样设置界面:

[Interface]
Address = 10.255.128.1/24
MTU = 1420
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = ********************************************

然后发生了一些非常奇怪的事情:我启动 iface 并运行sudo ip addr,然后我得到了这个输出

3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.255.128.1/24 scope global wg0
       valid_lft forever preferred_lft forever

奇怪的事情?看着那(这mtu 8921

然后我转到 conf 文件,令我惊讶的是,我为 mtu 设置的值被 8921 覆盖了。

sudo systemctl status wg-quick@wg0.service给出这个输出:

Nov 18 16:04:08 ip-172-26-0-77 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Nov 18 16:04:08 ip-172-26-0-77 wg-quick[583]: [#] ip link add wg0 type wireguard
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] wg setconf wg0 /dev/fd/63
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip -4 address add 10.255.128.1/24 dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip link set mtu 8921 up dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING >
Nov 18 16:04:09 ip-172-26-0-77 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

这里发生了什么?

wireguard
  • 1 个回答
  • 58 Views
Martin Hope
Patrick
Asked: 2022-08-19 04:23:36 +0800 CST

wg-quick 设置的这些 nftables 规则是什么意思?

  • 1

我正在使用wg-quick打开 VPN 连接。我可以看到该实用程序正在设置一些nft规则,我想了解它们。我对 iptables 有一定的了解,但对 nftables 一无所知。

这是 Wireguard 配置文件:

[Interface]
PrivateKey = xxxxx
Address = 10.2.0.2/32
DNS = 10.2.0.1

[Peer]
PublicKey = yyyyyyyy
AllowedIPs = 0.0.0.0/0
Endpoint = 185.159.157.129:51820

当我调用时,wg-quick我看到了这个:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.2.0.2/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63

这是nft规则的转储:

table ip wg-quick-wg0 {
        chain preraw {
                type filter hook prerouting priority raw; policy accept;
                iifname != "wg0" ip daddr 10.2.0.2 fib saddr type != local drop
        }

        chain premangle {
                type filter hook prerouting priority mangle; policy accept;
                meta l4proto udp meta mark set ct mark
        }

        chain postmangle {
                type filter hook postrouting priority mangle; policy accept;
                meta l4proto udp meta mark 0x0000ca6c ct mark set meta mark
        }
}

这些nft规则是什么意思,它们的用途是什么,为什么需要它们?

wireguard
  • 0 个回答
  • 212 Views
Martin Hope
Daniel
Asked: 2022-03-26 00:22:50 +0800 CST

如何配置wireguard以转发客户端IP地址(带网关)?

  • 2

我正在尝试将wireguard 配置为VPN 服务器。主要问题是,网关仅将 VPN 服务器 IP 转发到其他服务器,而不是我的客户端 IP。

我的设置如下:

                                                        - server A (10.10.0.4)
                                                      /
CLIENT (10.10.1.3) -> wireguard server (10.10.1.2) -- 
                                       (10.10.0.2)    \
                                                        - server B (10.10.0.3)

Wireguard 服务器运行在具有两个接口的机器上:

  • eth0 (10.10.0.2)
  • wg0 (10.10.1.2)

建立 VPN 连接后,我可以连接到服务器 A 和服务器 B(通过 ssh)。问题是,wireguard 服务器的 IP 地址被转发(nat)到服务器 A 和 B。通过 ssh 登录每次都向我显示,最后一个连接来自 10.10.0.2(在服务器 A 和 B 上)。但是在wireguard服务器上,最后登录的IP是我的真实客户端IP(10.10.1.3)。

我要做的是配置wireguard,以便我的IP(10.10.1.3)正确转发到服务器A和B。

这是我的客户端wireguard 配置文件:

[Interface]
PrivateKey = xxx
Address = 10.10.1.3/24
DNS = 10.10.0.2, 8.8.8.8

[Peer]
PublicKey = XXX
AllowedIPs = 10.10.0.0/24
Endpoint = xxx.xxx.xxx.xxx:41194
PersistentKeepalive = 15

我的wireguard服务器(wg0.conf)配置:

[Interface]
Address = 10.10.1.2/24

## My VPN server port ##
ListenPort = 41194

PrivateKey = xxx

# Internet Gateway config: nat wg1 out to the internet on ens10
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
## Desktop/client VPN public key ##
PublicKey = xxx

AllowedIPs = 10.10.1.3/32

我猜是 iptables 配置错误,因为 nat / MASQUERADE,但我无法正确配置网关。

我感谢您的帮助。

更新

在服务器 A 上执行(在 B 上相同)

ip -br link; ip -br address; ip route

返回(公共 IP 被屏蔽):

lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0             UP             96:00:01:29:d6:9b <BROADCAST,MULTICAST,UP,LOWER_UP>
ens10            UP             86:00:00:08:9c:c5 <BROADCAST,MULTICAST,UP,LOWER_UP>
lo               UNKNOWN        127.0.0.1/8 ::1/128
eth0             UP             10.10.0.3/32  fe80::9400:1ff:fe29:d69b/64
ens10            UP             49.xxx.xxx.xxx/32  2a01:xxx:xxx:xxx::1/64  fe80::8400:ff:fe08:9cc5/64
default via 172.31.1.1 dev ens10 proto dhcp src 49.xxx.xxx.xxx metric 100
10.10.0.0/16 via 10.10.0.1 dev eth0
10.10.0.1 dev eth0 scope link
172.31.1.1 dev ens10 proto dhcp scope link src 49.xxx.xxx.xxx metric 100
networking iptables gateway wireguard
  • 1 个回答
  • 2967 Views
Martin Hope
Kevin
Asked: 2022-03-06 13:46:39 +0800 CST

向 eth1 发送 WG 流量

  • 0

我用 AWS 设置了一个wireguard 服务器,用一个树莓派设置了wireguard 客户端。

现在我需要将 WG 流量 (wg0) 重定向到 eth1(eth0 是我的交换机的上行链路)

-- 我的目标是在客户端连接到 PI eth1(全隧道)时从我的 WG 服务器获取 IP

我的 WG 配置

[Interface]
Address = 10.1.1.1/24
ListenPort = 51820
PrivateKey = ##
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = ##
AllowedIPs = 10.1.1.2/32

我安装了 Netplan,但我对配置很迷茫(我需要将 WG0 流量发送到 ETH1)

以下配置是否有意义:(可能不是......)

network:
    version: 2
    renderer: networkd
    bonds:
        bond0:
            dhcp4: yes
            interfaces:
                - wg0
                - eth1
            parameters:
                primary: wg0



It's would be even better for the Raspberry PI to joint my UniFi VLAN (uplink) and get an IP from there but still sent/receive all the traffic from WG server but that's to complex for me I guess

更新:我应该将 WG 配置添加到 Netplan 吗?

tunnels:
network:
    version: 2
    renderer: networkd
    bonds:
        bond0:
            dhcp4: yes
            interfaces:
                - wg0
                - eth1
            parameters:
                primary: wg0
  wg0:
    mode: wireguard
    addresses: 10.1.1.1/24
    peers:
      - keys:
         Public_key?
        ...
    key: Private_key?
vpn networking wireguard netplan
  • 1 个回答
  • 116 Views
Martin Hope
cdauth
Asked: 2022-02-28 14:26:02 +0800 CST

对于通过 Wireguard 进入的连接,通过同一设备发回响应

  • 0

我有一个在我的私有 LAN 中运行的服务器,它使用 Wireguardlanserver连接到公共服务器。使用 iptables规则通过 Wireguard 连接将 TCP 连接转发到某些端口。publicserverpublicserverlanserverDNAT

在 上lanserver,Wireguard 设置为 NetworkManager 连接。它通过 Wireguard 使用AllowedIPs = 0.0.0.0/0, ::/0. 这会导致设置以下 ip 规则lanserver:

[root@lanserver ~]# ip rule show
0:      from all lookup local
31100:  from all lookup main suppress_prefixlength 0
31101:  not from all fwmark 0xcb2e lookup 52014
32766:  from all lookup main
32767:  from all lookup default
[root@lanserver ~]# ip route show table 52014
default dev wg0 proto static scope link metric 50

此设置工作正常。使用 iptables 规则将传入的 TCP 连接publicserver转发到。由于 ip 规则与之匹配,因此lanserver将响应发回。publicserver31101

有一个例外:当我尝试publicserver从我的个人计算机打开 TCP 连接以使用 IPv6 时pc,它也位于我的私有 LAN 中,它不起作用。问题似乎是两者在同一个公共子网pc中lanserver都有一个 IPv6 地址。publicserver成功转发连接lanserver,但响应不是通过 Wireguard 连接路由回,而是直接pc由于 ip rule 31100。

如何确保通过 Wireguard 接口进入的连接的所有响应lanserver也通过 Wireguard 接口发回,无论它们的源 IP 是否在本地子网中?

我可以从以下几个方向思考解决方案:

  • 在 上禁用 IPv6 lanserver,导致它与 不在同一子网中pc。不是一个很好的解决方案。
  • 用于端口转发SNAT。publicserver不是一个可接受的解决方案,因为转发端口后面的一些服务需要知道真正的源 IP。
  • AllowedIPs在 Wireguard 对等体中明确提及本地 IPv6 子网。这不起作用,因为 IPv6 子网每 24 小时更改一次。
  • 添加一个自定义 IP 规则,该规则以某种方式匹配所有传入的连接wg0并为它们使用路由表52014。我不确定如何准确指定这样的规则。此外,问题在于每次重新启动 Wireguard 连接时,路由表的数量都会发生变化。创建此类规则的正确位置可能是PostUp脚本,但 NetworkManager 似乎不允许指定一个。
linux-networking wireguard iproute2
  • 1 个回答
  • 103 Views
Martin Hope
plmdie
Asked: 2022-02-17 13:55:52 +0800 CST

Wireguard 限制对本地网络中的服务和机器的访问

  • 0

我在我的本地网络中运行一个 Wireguard“服务器”,我通过我的静态公共 IP 远程访问它。我希望能够将 Wireguard 远程对等点的访问限制为我的局域网中的服务/机器,我在其中托管其他服务器。

示例:安装了 Wireguard 的服务器 1 (192.168.1.23 | 10.0.0.1) + Nextcloud + Jellyfin 在同一台机器上 服务器 2 (192.168.1.62) 和 Photoprism

远程对等体 1 (10.0.0.2 | 动态 ip) 远程对等体 2 (10.0.0.3 | 动态 ip)

我想要:

1- 允许 peer1 (10.0.0.2) 访问服务器 1 Nextcloud + Jellyfin 并访问服务器 2 到 Photoprism。

2- 允许 Peer2 (10.0.0.3) 仅访问服务器 1 Nextcloud 但不允许访问 Jellyfin 并阻止访问服务器 2

现在我可以从所有 Peers 访问我局域网中的所有机器。

iptables 规则:

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -A POSTROUTING -o wg0
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -D POSTROUTING -o wg0

我遵循了Justin Ludwig的本教程,因为站点到点拓扑与我的非常相似。所以我尝试用这些规则复制 Iptables 规则:

# masquerading
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x200
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE
PostDown = iptables -t mangle -D PREROUTING -i wg0 -j MARK --set-mark 0x200
PostDown = iptables -t nat -D POSTROUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE

# wireguard ingress
PreUp = iptables -I INPUT -p udp --dport 2332 -j ACCEPT
PostDown = iptables -D INPUT -p udp --dport 2332 -j ACCEPT

# site firewall
PreUp = iptables -N wg0-filter
PreUp = iptables -N to-photoprism
PreUp = iptables -N to-jellyfin
PreUp = iptables -N to-nextcloud

PreUp = iptables -I INPUT   -i wg0 -j wg0-filter
PreUp = iptables -I FORWARD -i wg0 -j wg0-filter
PreUp = iptables -I FORWARD -o wg0 -j wg0-filter
PreUp = iptables -I OUTPUT  -o wg0 -j wg0-filter

PreUp = iptables -A wg0-filter -m state --state ESTABLISHED,RELATED -j ACCEPT
PreUp = iptables -A wg0-filter -d 192.168.1.63  -p tcp --dport   2342 -j to-photoprism
PreUp = iptables -A wg0-filter -d 192.168.1.23  -p tcp --dport   8096 -j to-jellyfin
PreUp = iptables -A wg0-filter -d 192.168.1.23  -p tcp --dport     80 -j to-nextcloud
PreUp = iptables -A wg0-filter -j REJECT

PreUp = iptables -A to-photoprism     -s 10.0.0.2    -j ACCEPT

PreUp = iptables -A to-jellyfin       -s 10.0.0.2    -j ACCEPT
PreUp = iptables -A to-jellyfin       -s 10.0.0.3    -j ACCEPT

PreUp = iptables -A to-nextcloud      -s 10.0.0.2    -j ACCEPT
PreUp = iptables -A to-nextcloud      -s 10.0.0.3    -j ACCEPT

PostDown = iptables -D INPUT   -i wg0 -j wg0-filter
PostDown = iptables -D FORWARD -i wg0 -j wg0-filter
PostDown = iptables -D FORWARD -o wg0 -j wg0-filter
PostDown = iptables -D OUTPUT  -o wg0 -j wg0-filter

PostDown = iptables -F to-photoprism
PostDown = iptables -F to-jellyfin
PostDown = iptables -F to-nextcloud

PostDown = iptables -X to-photoprism
PostDown = iptables -X to-jellyfin
PostDown = iptables -X to-nextcloud

这不起作用,Peer 1 和 Peer 2 可以访问服务器 1,这两个服务,但不是服务器 2。

我不太了解我必须改变什么才能完成这项工作,如果有人能插话,我会很高兴。

提前致谢

iptables wireguard
  • 1 个回答
  • 1138 Views
Martin Hope
Nicolò
Asked: 2022-02-04 06:45:39 +0800 CST

已解决 - 路由器作为 WireGuard 客户端 | 外部用户 IP 显示为家庭服务器上 WireGuard 隧道的本地 IP [EdgeRouter]

  • 0

我已将我的 EdgeRouter-X 设置为 WireGuard 客户端(使用 IPv6),以便我的公共 IP 显示为 WireGuard 服务器的公共 IP。

这是因为我想使用 OVH 的 IP 和 Anti-DDoS 来托管家庭服务器,而不是我自己的不受保护的公共 ip。

我有 4 个公共 IP:

22.22.22.22

33.33.33.33

44.44.44.44

55.55.55.55

我的连接图是这样的:

OVH VPS Wireguard Server WG0 Tunnel (LOCAL Tunnel 10.0.0.1) [Port forwarding with IPTables] <-----> (LOCAL Tunnel 10.0.0.2) EdgeRouter X

EdgeRouter-X (LOCAL 192.168.1.1) [Port forwarding with EdgeRouter] <-----> (LOCAL 192.168.1.10) HOME-SERVER

我正在通过 wg0 隧道将 OVH 的 VPS (1-65535) 的所有端口与 IPTables 转发到我的 EdgeRouter,然后转发到我的家庭服务器,这样就可以了。

问题是当用户连接到 22.22.22.22:80 时,他成功显示了网页,但他到服务器的 IP 是 10.0.0.1 而不是用户公共 IP。

这是我的 WG 服务器配置:

[Interface]

Address = 10.0.0.1/30

ListenPort = 51821

PrivateKey = CENSORED




### Client vpn

[Peer]

PublicKey = CENSORED

PresharedKey = CENSORED

AllowedIPs = 10.0.0.2/30

这是我的 WG 服务器 IPTables 配置,用于通过 WG0 将端口转发到 EdgeRouter:

# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022
*filter
:INPUT ACCEPT [971:145912]
:FORWARD ACCEPT [920:137172]
:OUTPUT ACCEPT [637:108812]
:f2b-sshd - [0:0]
COMMIT
# Completed on Sun Jan  9 11:04:33 2022
# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022
*nat
:PREROUTING ACCEPT [133:6792]
:INPUT ACCEPT [61:2272]
:OUTPUT ACCEPT [3:228]
:POSTROUTING ACCEPT [66:4011]
-A PREROUTING -i ens3 -p udp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p udp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p udp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2
-A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Sun Jan  9 11:04:33 2022

这是我的 EdgeRouter-X 配置,带有 WG0 客户端和端口转发到家庭服务器:

 firewall {
     all-ping enable
     broadcast-ping disable
     group {
         address-group MY_PUBLIC {
             address 22.22.22.22
             address 33.33.33.33
             address 44.44.44.44
             address 55.55.55.55
         }
     }
     ipv6-name WANv6_IN {
         default-action drop
         description "WAN inbound traffic forwarded to LAN"
         enable-default-log
         rule 10 {
             action accept
             description "Allow established/related sessions"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     ipv6-name WANv6_LOCAL {
         default-action drop
         description "WAN inbound traffic to the router"
         enable-default-log
         rule 10 {
             action accept
             description "Allow established/related sessions"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
         rule 30 {
             action accept
             description "Allow IPv6 icmp"
             protocol ipv6-icmp
         }
         rule 40 {
             action accept
             description "allow dhcpv6"
             destination {
                 port 546
             }
             protocol udp
             source {
                 port 547
             }
         }
     }
     ipv6-receive-redirects disable
     ipv6-src-route disable
     ip-src-route disable
     log-martians enable
     modify wireguard_route {
         rule 5 {
             action modify
             destination {
                 group {
                     address-group MY_PUBLIC
                 }
             }
             modify {
                 table main
             }
         }
         rule 10 {
             action modify
             description wireguard-vpn
             modify {
                 table 1
             }
             source {
                 address 192.168.1.0/24
             }
         }
     }
     name WAN_IN {
         default-action drop
         description "WAN to internal"
         rule 10 {
             action accept
             description "Allow established/related"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     name WAN_LOCAL {
         default-action drop
         description "WAN to router"
         rule 10 {
             action accept
             description "Allow established/related"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     receive-redirects disable
     send-redirects enable
     source-validation disable
     syn-cookies enable
 }
 interfaces {
     ethernet eth0 {
         address dhcp
         description Internet
         dhcpv6-pd {
             pd 0 {
                 interface eth1 {
                     service dhcpv6-stateful
                 }
                 interface eth2 {
                     service dhcpv6-stateful
                 }
                 interface eth3 {
                     service dhcpv6-stateful
                 }
                 interface switch0 {
                     host-address ::1
                     service slaac
                 }
                 prefix-length /64
             }
             rapid-commit enable
         }
         duplex auto
         firewall {
             in {
                 ipv6-name WANv6_IN
                 name WAN_IN
             }
             local {
                 ipv6-name WANv6_LOCAL
                 name WAN_LOCAL
             }
         }
         ipv6 {
             address {
                 autoconf
             }
             dup-addr-detect-transmits 1
         }
         speed auto
     }
     ethernet eth1 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth2 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth3 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth4 {
         description Local
         duplex auto
         poe {
             output off
         }
         speed auto
     }
     loopback lo {
     }
     switch switch0 {
         address 192.168.1.1/24
         description Local
         firewall {
             in {
                 modify wireguard_route
             }
         }
         mtu 1500
         switch-port {
             interface eth1 {
             }
             interface eth2 {
             }
             interface eth3 {
             }
             interface eth4 {
             }
             vlan-aware disable
         }
     }
     wireguard wg0 {
         address 10.0.0.2/30
         description Wireguard
         listen-port 51821
         mtu 1420
         peer CENSORED {
             allowed-ips 0.0.0.0/0
             endpoint [2001:41d0:52:400::6e3]:51821
             persistent-keepalive 25
             preshared-key /config/auth/wg-preshared.key
         }
         private-key /config/auth/wg.key
         route-allowed-ips false
     }
 }
 port-forward {
     auto-firewall enable
     hairpin-nat enable
     lan-interface switch0
     rule 1 {
         description "Allow ALL"
         forward-to {
             address 192.168.1.10
         }
         original-port 1-65535
         protocol tcp_udp
     }
     wan-interface wg0
 }
 protocols {
     static {
         table 1 {
             description "table to force wg0:aws"
             interface-route 0.0.0.0/0 {
                 next-hop-interface wg0 {
                 }
             }
             route 0.0.0.0/0 {
                 blackhole {
                     distance 255
                 }
             }
         }
     }
 }
 service {
     dhcp-server {
         disabled false
         hostfile-update disable
         shared-network-name LAN {
             authoritative enable
             subnet 192.168.1.0/24 {
                 default-router 192.168.1.1
                 dns-server 192.168.1.1
                 lease 86400
                 start 192.168.1.38 {
                     stop 192.168.1.243
                 }
                 static-mapping Node2 {
                     ip-address 192.168.1.10
                     mac-address 90:b1:1c:44:f6:da
                 }
                 static-mapping iDRAC {
                     ip-address 192.168.1.120
                     mac-address E0:DB:55:06:2D:14
                 }
             }
         }
         static-arp disable
         use-dnsmasq disable
     }
     dns {
         forwarding {
             cache-size 150
             listen-on switch0
         }
     }
     gui {
         http-port 80
         https-port 443
         older-ciphers enable
     }
     nat {
         rule 5002 {
             description wireguard-nat
             log disable
             outbound-interface wg0
             protocol all
             source {
                 address 192.168.1.0/24
             }
             type masquerade
         }
         rule 5003 {
             description "masquerade for WAN"
             log disable
             outbound-interface eth0
             protocol all
             type masquerade
         }
     }
     ssh {
         port 22
         protocol-version v2
     }
     unms {
     }
 }
 system {
     analytics-handler {
         send-analytics-report false
     }
     crash-handler {
         send-crash-report false
     }
     host-name EdgeRouter-X-5-Port
     login {
         user ubnt {
             authentication {
                 encrypted-password 
             }
             level admin
         }
     }
     ntp {
         server 0.ubnt.pool.ntp.org {
         }
         server 1.ubnt.pool.ntp.org {
         }
         server 2.ubnt.pool.ntp.org {
         }
         server 3.ubnt.pool.ntp.org {
         }
     }
     offload {
         hwnat enable
         ipsec enable
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
     }
     time-zone UTC
 }
vpn networking tunneling wireguard ubiquiti-edgerouter
  • 1 个回答
  • 975 Views
Martin Hope
javathunderman
Asked: 2022-01-06 11:17:26 +0800 CST

通过 VPS 连接到wireguard peer

  • 0

我当前的 Wireguard 设置有一个连接到不同本地网络上的两个设备的 VPS。每个家庭网络设备都使用 Wireguard 连接到 VPS,但未配置为接受彼此的连接(它们尚未在彼此的配置文件中添加为对等点)。

我想使用类似于反向代理服务器的 VPS,以便家庭设备 1 可以连接到 VPS 并将其流量路由到家庭设备 2,而无需配置两个家庭设备之间的直接连接(本质上是轮辐模型)。有没有办法以这种方式路由流量?

当前家庭网络设备配置文件:

[Interface]
Address = 10.0.0.2/8
SaveConfig = true
ListenPort = 53910
FwMark = 0xca6c
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.1/32
Endpoint = <IP address>

服务器配置文件:

[Interface]
Address = 10.0.0.1/8
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
ListenPort = 51820
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.2/32
Endpoint = <IP of home network device 1>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.3/32
Endpoint = <IP of home network device 2>

在这些当前规则下,如果我尝试从设备 1 对设备 2 执行 ping 操作,我会收到此错误消息(这似乎表明对等方彼此了解,但配置不正确?)

user@device1:~/wireguard$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
From 10.0.0.2 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available

谢谢!

ubuntu iptables nginx reverse-proxy wireguard
  • 1 个回答
  • 122 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve