首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wireguard路由

Wireguard路由
EN

Unix & Linux用户
提问于 2020-09-01 07:35:49
回答 2查看 2K关注 0票数 0

我已经设置了一个有线连接,但我在路由方面有一些问题。我有两个地点,有线计算机建立VPN是背后的互联网供应商的路由器。我可以在一个或另一个地方。这意味着,为了设置VPN,我需要远程访问另一个站点。虚拟专用网的成功建立,并打破了它。因为我不能登录到远程位置,所以我不能再次设置它。我得等着去别的地方。由于下面描述的一个问题,我无法登录到一个遥远的位置。

我已经设置了对这些计算机的远程SSH访问,所以我可以通过互联网通过进入路由器的NAT来访问它们。我登录到路由器地址,路由器将SSH转发到内部地址,SSH访问很好,但是有一个陷阱。

一旦我打开wg0接口并尝试建立虚拟专用网,SSH访问就不再工作了。我分析了交通情况,然后发生了以下情况。当我启动SSH时,路由器转发它,有线计算机在eth0接口上接收D2数据包。但是,SYN, ACK数据包不是通过eth0发送回来的,而是在wg0处于活动状态时通过wg0接口发送的。没有wg0接口,SSH可以很好地工作。SSH还可以在本地网络192.168.1.0/24中工作,而不管wg0接口如何。

如何保持我的SSH连接和同时使用有线VPN连接?我在那台计算机上有另一个接口lan0,它现在没有连接。我是否也应该将lan0连接到内部网,并将其用于SSH?我想lan0接口的问题仍然存在,因为它将连接到与eth0相同的网络。

以下是关于连接、路由等的一些附加信息。

Without wg0接口:

wg-quick down wg0输出:

代码语言:javascript
复制
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
[#] nft -f /dev/fd/63

ip -4附加件:

代码语言:javascript
复制
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 8e:b7:6b:c9:08:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 84256sec preferred_lft 84256sec
3: lan0:  mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 8e:b7:6b:c9:08:9d brd ff:ff:ff:ff:ff:ff

ip路由:

代码语言:javascript
复制
default via 192.168.1.1 dev eth0 
default via 192.168.1.1 dev eth0 proto dhcp metric 100 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.250 metric 100

知识产权规则:

代码语言:javascript
复制
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

With wg0接口:

wg-quick up wg0输出:

代码语言:javascript
复制
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] 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

ip -4附加件:

代码语言:javascript
复制
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 8e:b7:6b:c9:08:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 84320sec preferred_lft 84320sec
3: lan0:  mtu 1500 qdisc fq_codel state DOWN group 
default qlen 1000
    link/ether 8e:b7:6b:c9:08:9d brd ff:ff:ff:ff:ff:ff
14: wg0:  mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.2/24 scope global wg0
       valid_lft forever preferred_lft forever

ip路由:

代码语言:javascript
复制
default via 192.168.1.1 dev eth0 
default via 192.168.1.1 dev eth0 proto dhcp metric 100 
10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.2 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.250 metric 100 

知识产权规则:

代码语言:javascript
复制
0:  from all lookup local
32764:  from all lookup main suppress_prefixlength 0
32765:  not from all fwmark 0xca6c lookup 51820
32766:  from all lookup main
32767:  from all lookup default

更新:经过更多的测试后,我发现wg-快速设置了一些ip路由和规则。我怀疑这些干扰了SSH的连接。如果我尝试下面的命令,SSH仍然有效。

代码语言:javascript
复制
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.2/24
wg set wg0 private-key /root/wgprivate.key
wg set wg0 listen-port 37723
ip link set wg0 up
wg set wg0 peer  allowed-ips 0.0.0.0/0 persistent-keepalive 25 endpoint :

由于我无法访问远程网站直到周末,我将试图找出,哪些命令在wg-快速原因的不稳定的行为。当我将访问远程站点,我将再次建立VPN没有wg-快速.我以前已经做过了,但想用wg- that实现自动化。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-11-20 08:32:32

经过一些研究,我发现我不想要建立连接后wg- want所做的路由。所以,解决方案很简单。放一条线

代码语言:javascript
复制
Table = off

[Interface]区。这指示wg-快速不制定ip规则和路由。

票数 1
EN

Unix & Linux用户

发布于 2020-11-03 13:31:52

看一看这里,但是让它简单地总结一下您的问题:

您可以使用iptables将包标记为目标端口22。

代码语言:javascript
复制
iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j MARK --set-mark 22

因此,您可以插入一个高优先级规则来通过eth0路由这些包。

代码语言:javascript
复制
ip rule add priority 32000 fwmark 22 table 22
ip route flush table 22
ip route add table 22 default dev eth0

还没有测试过它,一个可能的副作用可能是您不再能够通过VPN连接端口22。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/607313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档