Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、连接外围服务器等。 基于修改版的 QUIC 协议。新版本支持在FreeBSD系统上进行部署,并支持以下代理形式:
- SOCKS5 代理 (TCP & UDP)
- HTTP/HTTPS 代理
- TCP/UDP 转发
- TCP/UDP TPROXY 透明代理 (Linux)
- TCP REDIRECT 透明代理 (Linux)
- TUN (Windows 下为 TAP)
服务器配置
以运行Ubuntu 20.04 LTS系统为例,服务器端的配置如下:
1、创建并进入Hysteria程序存放的文件夹
mkdir hy cd hy
2、下载Hysteria
注意:请到官方更新下载地址。也可以用Winscp等工具上传到指定目录。
先安装wget工具:
apt-get install wget
然后下载程序。
wget https://github.com/HyNetwork/hysteria/releases/download/v1.3.0/hysteria-linux-amd64
3、设置执行权限
chmod 755 hysteria-linux-amd64
4、生成私钥
openssl ecparam -genkey -name prime256v1 -out ca.key
5、生成证书:
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"
6、转发端口范围到指定监听端口9999
从1.3.0 版本开始,Hysteria 加入了多端口/端口范围地址的支持,客户端可以在指定端口范围内自动跳跃,解决了长时间单端口UDP连接容易被运营商封锁/QoS的问题。
# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :9999
#IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :9999
7、服务端配置
用vi编辑工具在当前目录新建一个config.json配置文件,代码如下:
注意,这里的端口可以自定义,建议使用不常见的端口号。
{ "listen": ":9999", "cert": "/root/hy/ca.crt", "key": "/root/hy/ca.key", "obfs": "password" }
8、开放防火墙端口访问:
通过apt软件管理器安装UFW。
apt update apt install ufw
执行以下命令,开放访问端口:
ufw allow 9999/udp
9、运行服务端
nohup ./hysteria-linux-amd64 server > hysteria.log 2>&1 &
提示:也可以使用一键脚本来安装,点击这里了解安装方法,注意这个脚本需要注册域名。也可以使用下面的脚本,不需要域名,但只支持debian系统。
wget https://raw.githubusercontent.com/lanhebe/hysteria/master/onekey_installHysteria.sh && chmod +x onekey_installHysteria.sh && ./onekey_installHysteria.sh
pfSense设置
1、进入防火墙shell环境,新建vpn目录并进入:
mkdir vpn cd vpn
2、下载基于Freebsd系统的客户端。
当前版本1.2.1,请随时更新官方的下载地址。也可以用Winscp等工具将下载的文件上传到指定目录。
fetch https://github.com/HyNetwork/hysteria/releases/download/v1.3.0/hysteria-freebsd-amd64
3、编辑配置文件config.json
从1.30版本开始,支持多端口跳跃,服务器端口可以填写一个指定范围,如下所示:
{
"server": "ip:20000-50000",
"obfs": "password",
"up_mbps": 20,
"down_mbps": 100,
"insecure": true,
"socks5": {
"listen": "192.168.101.2:1080"
},
"http": {
"listen": "192.168.101.2:1081"
}
}
监听地址为防火墙的LAN接口地址。
4、安装bash
pkg install bash
5、赋予程序执行权限
chmod +x /root/vpn/hysteria-freebsd-amd64
6、启动客户端
nohup /root/vpn/hysteria-freebsd-amd64 -c /root/vpn/config.json
7、编辑开机启动项
安装shellcmd插件,然后参照下图设置开机启动命令:
nohup /root/vpn/hysteria-freebsd-amd64 -c /root/vpn/config.json > /dev/null 2>&1 &
自动代理设置
现在使用系统代理,可以以全局方式访问所有网站。我们可以安装自动代理插件,解决内外地址分流问题。在chrome浏览器上安装SwitchyOmega插件,在插件选项上设置http代理地址为防火墙的LAN接口地址,代理端口填1081。
自动代理选项,选中规则列表规则,模式选代理,在规则列表模式的更新网址,输入下面其中的一个地址:
- https://pagure.io/gfwlist/raw/master/f/gfwlist.txt
- http://repo.or.cz/gfwlist.git/blob_plain/HEAD:/gfwlist.txt
- https://bitbucket.org/gfwlist/gfwlist/raw/HEAD/gfwlist.txt
- https://gitlab.com/gfwlist/gfwlist/raw/master/gfwlist.txt
- https://git.tuxfamily.org/gfwlist/gfwlist.git/plain/gfwlist.txt
点击立即更新情景模式。然后点击左侧的应用选项。
在chrome浏览器上点击SwitchyOmega图标,选中自动切换选项,完成自动代理的设置。
现在就可以尽情畅游网络了。
感谢群友老D提供技术指导。
Hysteria的各项配置参数,请参考官方WIKI。
参考文章:Linux部署Hysteria
如何用在pfsense Hysteria 打包转发pfsense wiregaurd.