文章目录
pfsense+wireguard 实现Site To Pop的流量转发(路由模式)
A、pfsense端操作部分
A1、pfsense创建wg隧道
A2、为wg隧道创建pfsense接口,并分配接口ip 192.168.25
A3、为wg隧道创建vps的peer,并放行所需流量
A4、pfsense放行策略(WAN口放行udp 51821、wg隧道接口放行所有流量)
B、vps server操作部分(vps系统的debian的)
B1、vps安装wireguard,并初始化私钥和公钥
# 先给服务器配置内核转发+关闭linux内核源路径验证 (这是非常重要的)
#echo "net.ipv4.conf.default.rp_filter = 0" >> /etc/sysctl.conf
#echo "net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 安装wireguard,并初始化私钥+公钥
apt install wireguard -y
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
B2、创建一个对接用的wireguard配置文件
# 重点展示1、(路由)
PostUp之后会添加一条路由:ip route add 192.168.60.0/24 via 192.168.252.1
# 重点展示2、(nat转换-将来自pfsense这端的 192.168.60.0/24的数据,源换成vps的出口ip)
PostUp之后会添加两条转换:iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 重点提示3、(关闭隧道要删除对应的路由和nat规则)
PostDown之后添加两条命令:iptables -t nat -D POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
B3、核对配置文件并启动验证
# 如下是编写的配置文件
root@ttk-vps:~# cat /etc/wireguard/cq_to_ttk01.conf
[Interface]
ListenPort = 51821
PrivateKey = cDzs/Kf2WO7/cczEXygMD7TxH1V6yg1O9aCLxxxxxxx=
PostUp = /sbin/ip addr add dev %i 192.168.252.2/32 peer 192.168.252.1/32; ip route add 192.168.60.0/24 via 192.168.252.1 ; iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Table = off
[Peer]
PublicKey = YucmL5Emn8GdjoMcDTh93R4us5URqB4J9dZx0xxxxxxx
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = cu.wsfnk.com:51821
PersistentKeepalive = 60
# 启动隧道,并设置为开机启动
wg-quick up cq_to_ttk
systemctl enable wg-quick@.service
systemctl enable wg-quick@cq_to_ttk.service
# 验证路由和iptables nat规则是否添加成功
root@ttk-vps:~# ip r
default via 193.53.126.1 dev eth0 onlink
192.168.60.0/24 via 192.168.252.1 dev cq_to_ttk
192.168.252.1 dev cq_to_ttk proto kernel scope link src 192.168.252.2
193.53.126.0/23 dev eth0 proto kernel scope link src 193.53.126.222
root@ttk-vps:~# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.60.0/24 0.0.0.0/0 to:193.53.126.222
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
C、验证隧道联通性,并为pfsense设置wg远程网关
联通性自己ping测下就好。如下给一个pfsense的peer状态图
C1、进入路由管理》添加网关,并填写网关监视ip
注意:请先将pfsense的默认网关改成WAN口(避免出问题)
C2、剩下的就是按需 添加静态路由,或者在 LAN口下添加指定网关的策略路由
注意:当隧道失效时,静态路由不会自动切换,此时可以使用网关组。
附D、采用NAT模式,需要特殊处理的地方
D1、vps不需要添加到192.168.60.0/24的路由
D2、vps上iptables的源转换配置如下(源是pfsense的wg隧道接口ip)
iptables -t nat -A POSTROUTING -s 192.168.252.1/30 -o eth0 -j SNAT --to-source 193.53.126.222; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
D3、pfsense需要添加出口的NAT规则,并将pfsense的出向NAT模式设置为自动+指定
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论