pfSense安装部署Hysteria(二)

pfSense安装部署Hysteria(一)部分,介绍了Hysteria服务器搭建、pfSense配置和客户端浏览器的代理设置。本篇介绍pfSense配置tun接口进行策略路由,并使用mosdns防止DNS污染的方法。

一、服务器搭建

与第(一)部分完全相同,略。

二、mosdns配置

1、创建Workers

注册cloudflare账号并登陆,点最左边的Workers(不需要域名),创建服务,名称dns1,点快速编辑,进入编辑模式,全选删除所有内容,粘贴附件worker-dns1中的代码。

继续创建服务,名称dns2,点快速编辑,粘贴附件worker-dns2中的代码。

2、修改配置文件

回到wokers,记录两个workers的域名。修改附件dns文件夹下的config.yaml文件,替换120行和122行对应域名。

三、pfSense配置

1、禁用pfSense的DNS解析

由于使用mosdns进行解析,所以必须禁用防火墙的DNS解析功能。

2、上传文件

使用finalshell工具连接到pfsense,下载最新版的hysteria和mosdns,替换本文附件当中的对应程序。将dns和vpn文件夹上传到/root目录,安装bash,赋予mosdns和vpn程序执行权限。

pkg install bash 
chmod +x /root/dns/mosdns 
chmod +x /root/vpn/vpn

3、运行客户端

启动hysteria客户端,每个服务器一条运行命令。运行后,不能Ctrll+C中断,可以退出shell再运行第二条命令。

nohup /root/vpn/vpn -c /root/vpn/vpn1.json 
nohup /root/vpn/vpn -c /root/vpn/vpn2.json

注意:配置文件vpn.json必须包含tun接口名称。从1.30版本开始,支持多端口跳跃,服务器端口可以填写一个指定范围,减少某一端口长期使用被运营商Qos阻断的可能。如下所示:

{ 
"server": "xxx.xxx.xxx.xxx:20000-50000", 
"protocol": "udp", 
"obfs": "password", 
"up_mbps": 1000, 
"down_mbps": 1000, 
"insecure": true, 
"tun": { 
"name": "tun_vpn1", 
"timeout": 300, 
"mtu": 1500,
 },
 }

4、启用tun接口

导航到接口>分配,添加tun接口并分配IP,IP地址不能与LAN接口网络冲突。该接口不需要添加防火墙规则。

5、添加接口网关

导航到系统>路由管理,添加tun网关,网关地址与接口地址相同。

为了避免重启后出现网关不在线的假象(实际上并不影响正常使用),可以在这里禁用网关监控(示例图未禁用)。也可以防火墙启动完成后,对VPN接口禁用再启用一次,即可恢复网关监控。

添加另一个接口网关,并创建故障转移网关组。

6、添加别名

导航到防火墙>别名管理>网址,添加中国大陆IP地址别名。类型选网址表,选好更新周期。

测试列表:https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt

7、设置策略路由

在防火墙的lan接口,添加一条规则,协议选any,源选择要策略路由的主机或别名(或any,允许所有客户端)。目标选中反转匹配,选择单个主机或别名,输入前面创建的中国大陆IP别名:CHINAIP。高级选项的网关选择前面添加的vpn网关或网关组。

注意:DNS、VPS服务器地址也走默认网关出站。

8、运行MOSDNS

打开另一个shell窗口,运行命令启动mosdns。客户端网关、DNS设置为防火墙的LAN接口地址,测试国内外网络访问是否正常。

/root/dns/mosdns start -c /root/dns/config.yaml -d /root/dns/

确保在shell窗口能正常跑码。

9、添加开机启动项

将下面的命令添加到shellcmd当中,每行一条命令。

ping -c 3 127.1 
nohup /root/dns/mosdns start -c /root/dns/config.yaml -d /root/dns/ >/dev/null 2>&1 & 
ping -c 4 127.1 
nohup /root/vpn/vpn -c /root/vpn/vpn1.json > /dev/null 2>&1 & 
nohup /root/vpn/vpn -c /root/vpn/vpn2.json > /dev/null 2>&1 & 
ping -c 5 127.1 
ifconfig tun_vpn1 10.0.0.1 netmask 0xffffffff 
ifconfig tun_vpn2 10.0.0.2 netmask 0xffffffff

或者在/usr/local/etc/rc.d/目录下添加脚本,新建一个vpn.sh文件,并赋予该文件执行权限,程序将在开机时自动执行。文件内容如下:

#!/bin/sh 
# run hysteria and mosdns 
ping -c 3 127.1 
nohup /root/dns/mosdns start -c /root/dns/config.yaml -d /root/dns/ >/dev/null 2>&1 & 
ping -c 4 127.1 
nohup /root/vpn/vpn -c /root/vpn/vpn1.json > /dev/null 2>&1 & 
nohup /root/vpn/vpn -c /root/vpn/vpn2.json > /dev/null 2>&1 & 
ping -c 5 127.1 
ifconfig tun_vpn1 10.0.0.1 netmask 0xffffffff 
ifconfig tun_vpn1 10.0.0.2 netmask 0xffffffff

二选一即可。

9、测试

重启防火墙,使用命令nslookup分别测试baidu.com和google.com解析是否正常,打开浏览器访问国内、国外的网站,检查代理分流是否正常。

存在的问题:由于使用的大陆白名单,所有的国外地址全部走VPS出站,下载国外资源时,受VPS带宽的限制,下载的速度会受到影响。解决办法是使用国外黑名单来排除,即黑名单地址才走国外VPS出站,但目前没找到黑名单对应的IP地址更新列表,且黑名单大都使用了base64进行加密。重启防火墙后,如果启用了网关监控,则VPN网关并不会显示在线,这并不影响使用。可以禁用再启用一下接口即可恢复网关监控。

感谢群友老D提供技术指导。

软件下载:mosdns   hysteria

配置文件示例下载:附件 解压密码:pfchina.org

相关文章:pfSense安装部署Hysteria(一)

暂无评论

发送评论 编辑评论


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