【科学上网】在VPS上搭建Hysteria服务端并在Openwrt中的Passwall上配置客户端

Hysteria1

由于我目前用的openwrt中的Passwall只支持到Hysteria1,更新Passwall又会遇到内核和依赖等一堆问题,为了减少折腾,先搭建个Hysteria1玩一玩,等有空换了支持Hysteria2的Openwrt固件再尝试Hysteria.

首先参照Hysteria1的官方文档,看到支持docker安装,那二话不说果断选docker,详情见Docker | Hysteria

这次我选择在一台甲骨文云ARM服务器上使用docker-compose的方式安装,由于github和docker hub上的版本默认都是Hysteria2的,所以安装时要注意版本的选择。

1.创建安装目录并新建docker-compose.yaml文件,配置文件内容

version: '3.9'
services:
  hysteria:
    image: tobyxdd/hysteria:v1.3.5
    container_name: hysteria
    restart: always
    network_mode: "host"
    volumes:
      - ./hysteria.json:/etc/hysteria.json
    command: ["server", "--config", "/etc/hysteria.json"]

2.配置证书申请的文件

cat <<EOF > hysteria.json
{
  "listen": ":36752",
  "acme": {
    "domains": [
      "hy.daoker.cc"
    ],
    "email": "jhjyes@163.com"
  },
  "obfs": "8ZuA2Zrtetr38ds45fdg7vMjD3267BwY",
  "up_mbps": 100,
  "down_mbps": 100
}
EOF

3.使用docker-compose up -d创建并启动容器

Hysteria2

由于Hysteria1的教程文档较少,大多数脚本已经更新到Hysteria2,使用起来挺麻烦,上面的Hysteria1最终没能成功运用,于是我部署了Hysteria2,并在PVE里安装了windows,在windows中使用V2rayN的局域网共享功能,使得Passwall通过V2rayN使用Hysteria2,原因是我暂时没找到好用的支持Hysteria2的Passwall的OpenWRT,因此只能采用曲线救国的方法,下面记录Hysteria2的搭建过程:

服务端配置

首先从上面的github中下载Hysteria2的服务端到服务器,我这里服务器是ARM的,所以下载ARM的;

curl -Lo hysteria https://github.com/apernet/hysteria/releases/latest/download/hysteria-linux-arm64 && chmod +x hysteria && mv -f hysteria /usr/local/bin/

然后就是域名证书的问题,我这里用x-ui的脚本申请了想使用的域名的证书,并记下了公钥和密钥存储路径;

创建并修改配置文件如下:

vim /root/hysteria_config.yaml
listen: :443(这里改成自己想用的端口)

tls:
  cert: /root/cert/hy2.pornhug.top.cer(公钥路径)
  key: /root/cert/hy2.pornhug.top.key(密钥路径)

auth:
  type: password
  password: chika(自定义的密码)

masquerade:
  type: proxy
  proxy:
    url: https://www.lovelive-anime.jp(证书所对应的域名)
    rewriteHost: true

acl:
  inline: 
    - reject(all, udp/443)(这里的端口也记得修改)

验证是否搭建成功:curl –http3 https://hy2.pornhug.top -k

设置开机自启:

vim /etc/systemd/system/hysteria.service
[Unit]
After=network.target nss-lookup.target

[Service]
User=root
WorkingDirectory=/root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStart=/usr/local/bin/hysteria server -c /root/hysteria_config.yaml --log-level debug
Restart=on-failure
RestartSec=10
LimitNPROC=512
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload

启动程序

systemctl enable --now hysteria

程序信息和常用命令:

项目内容
程序 /usr/local/bin/hysteria
配置 /root/hysteria_config.yaml
重启 systemctl restart hysteria
状态 systemctl status hysteria
查看日志 journalctl -u hysteria -o cat -e
实时日志 journalctl -u hysteria -o cat -f

客户端配置

这里以windows端V2rayN为例,新建.yaml文件并输入以下内容,注意和服务端内容一一对应

server: 3.0.20.121:443

auth: chika

tls:
  sni: hy2.pornhug.top #如果你是自签证书则改为bing.com
  insecure: false #如果你是自签证书则改为insecure: true
fastOpen: true

#bandwith根据需求改,如果不写则默认bbr流控
bandwidth:
  up: 30 mbps
  down: 150 mbps
  
socks5:
  listen: 127.0.0.1:50000
  • 下载 Windows 客户端程序 hysteria-windows-amd64.exe(这个下载地址也是和第一步一样,可以去 realease 里面找),重命名为 hysteria.exe,复制到 v2rayN\bin\hysteria 文件夹。
  • 修改客户端配置,修改 hy.pornhug.top 为证书中包含的域名,修改 3.0.20.121 为 VPS 的 IP。
  • v2rayN:服务器 ——> 添加自定义配置服务器 ——> 浏览 ——> 选择客户端配置 ——> Core 类型 hysteria ——> Socks 端口 50000

最新教程参考波仔的Hysteria2节点搭建,抢占宽带,垃圾线路的救星!大幅提升稳定性!第二代歇斯底里Windows/iOS/安卓/MacOS/Openwrt全平台教程!

评论

  1. yufeng
    Windows Chrome 109.0.0.0
    2 月前
    2024-2-19 13:05:54

    你好,请教下如何在passwall的服务器端(模块)配置Hysteria2? 配置的时候要提供公钥和私钥,不知道如何生成,求教~。

发送评论 编辑评论


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