开了 warp 之后不能 SSH 登录
问题:
Abhi, [2023/1/17 11:08]
Hello, how can I use wg-quick up in my gcp server and then ssh back to it???
Abhi, [2023/1/17 11:08]
I want to add warp ip in my gcp server. But when I do wg-quick up, then I am unable to ssh into server
Abhi, [2023/1/17 11:09]
And my open vpn stop working
这看上去和
所以解决方案也一样:
解决方案
原理
脚本
内容很简单:
sed -i '/PostUp/d' /etc/wireguard/wgcf.confsed -i '/PostDown/d' /etc/wireguard/wgcf.confsed -i "7 s/^/PostUp = ip -4 rule add from $(ip route get 1.1.1.1 | grep -oP 'src \K\S+') lookup main\n/" /etc/wireguard/wgcf.confsed -i "8 s/^/PostDown = ip -4 rule delete from $(ip route get 1.1.1.1 | grep -oP 'src \K\S+') lookup main\n/" /etc/wireguard/wgcf.conf
效果就是在 wgcf.conf 文件里添加两行:
PostUp = ip -4 rule add from 192.168.0.6 lookup mainPostDown = ip -4 rule delete from 192.168.0.6 lookup main
(上面这个例子是
PostUp = ip -4 rule add from 64.27.22.164 lookup mainPostDown = ip -4 rule delete from 64.27.22.164 lookup main
IP 地址
如果你用 ip a 命令查一下,你会发现这个蓝色的
ip a
PostUp PostDown
https://manpages.debian.org/unstable/wireguard-tools/wg-quick.8.en.html
Bing翻译: PreUp, PostUp, PreDown, PostDown — 在设置/ 拆除接口之前 / 之后由 bash(1) 执行的脚本片段,最常用于配置自定义 DNS 选项或防火墙规则。特殊字符串 '%i' 扩展为 INTERFACE。每个命令都可以多次指定,在这种情况下,命令将按顺序执行。
意思就是说在
ip -4 rule add from SSH要连进来的IP 地址 lookup main
在
ip -4 rule delete from SSH要连进来的IP 地址 lookup main
ip 命令
这两个
你可以在
ip -4 rule show
perl 正则里面的 \K
观察脚本,你会发现用到 grep -oP 命令。参数 -o 表示只留下匹配的部分;-P 表示使用
参考:https://www.cnblogs.com/f-ck-need-u/p/7462706.html
而在 perl 正则表达式中,\K 表示丢弃匹配的部分。
参考:https://junmajinlong.com/perl/perl_re/
'src \K\S+' 的意思是先匹配 src ,然后把
思维拓展
以上谈的是在
如果是在
这时候在 wgcf.conf 里面
PostUp = ip -6 rule add from SSH要连进来的IPv6 地址 lookup main PostDown = ip -6 rule delete from SSH要连进来的 IPv6 地址 lookup main
ip -6 rule show
同样要注意, 如果你通过 ip a 查出来的
ip route get 2606:4700:4700::1111 | grep -oP 'src \K\S+'
然后再参考上面的
评论
发表评论