与‘Hysteria’有关的日志

Nat跑Hysteria

姚洪楼 发表于 学习备忘录 分类,标签:
0

看到某商家销售1.5刀月付的台湾nat,测试ip大陆三网都是直连,于是没忍住就上车折腾了。
配置:1CPU,256M内存,2G硬盘,中华电信,台湾彰化,300M带宽,2T月流量
网址就不给了,一来这个套餐已经下架了,二来网站域名才注册半年不到,属于新商家,存在较大风险

我安装的是 Debian10+Hysteria,安装遇到的相关问题记录如下:

一、安装时提示:[Network error]: Failed to get the latest version of hysteria in Github!

我使用的是 https://github.com/emptysuns/Hi_Hysteria 提供的一键脚本
默认没有curl所以直接使用:wget https://git.io/hysteria.sh && chmod +x hysteria.sh && ./hysteria.sh
脚本可以正常运行,但输入1进行安装最终提示:Failed to get the latest version of hysteria in Github!

Issues最近有人也遇到这样的问题:https://github.com/emptysuns/Hi_Hysteria/issues/245
有回帖说是ip被github 限制了,所以需要改脚本增加 github token 就可以解决
并且开发组也答复说下次更新会修复这个问题,不直接访问API获取版本号了

我测试了下,发现用其它ip以及自己电脑ip也都无法正常读取 latest version
所以我猜测不是ip被github限制了,而是github单方面做出了一些限制

首先重新注册一个github,然后在:
Settings ==>> Developer settings ==>> Personal access tokens ==>> Tokens(classic)
点击右侧主界面的 Generate a personal access tokens 新建一个token
Token描述随便写,下面的项目全部勾选(我看不懂每一条的意思,所以直接注册新号,给全部权限)
然后点 Generrate token 按钮提交就会得到一个token(一串很长的数字与字母的组合)

接下编辑第一步wget回来的hysteria.sh 找到第一段这个代码
–no-check-certificate https://api.github.com/repos/apernet/hysteria/releases/latest
修改下面这样:(token替换为上面在github得到的哪个token)

–no-check-certificate –header=’token’ https://api.github.com/repos/apernet/hysteria/releases/latest
保存之后运行即可正常读取到 latest version 并自动进行接下去的安装了。

  

二、使用ACNE申请证书,使用本地证书文件,还是自签证书的问题?

毫无疑问,使用正儿八经的证书是最保险的,而nat机没有80/443端口所以自动申请不了,所以只能使用本地证书文件的方式去实现,但实际执行的时候不知道为啥总是失败…..

于是曲线救国,比如我要用 taiwan.mpyes.com这个域名,先将它解析到nat的地址(cname或a记录均可)
然后到阿里云申请免费的ssl证书,再下载apache证书到本地解压缩,会得到三个文件,分别是key还有两个crt,实际只需使用key跟chain.crt这两个即可(使用本地证书文件,脚本提示需 fullchain cert)

然后按照hysteria.sh脚本正常安装,类型选择自签证书,安装完成之后可以看到脚本显示路径/etc/hihy,进入这个目录
再进cert目录便可以看到key跟crt文件,然后直接将上一段获得的key跟chain.crt改成etc/hihy/cert下的同名文件并覆盖

update 2023/05/30

直接覆盖的证书会报错,无法正常使用,所以还得使用本地证书,查询了一些资料,发现问题在于阿里云免费ssl并不提供完整的证书链文件,所以指定本地证书文件出错的根本原因是放上去的证书文件不对!
所以解决方案就是用 acme.sh 生成 Let’s Encrypt 证书,会得到四个文件:example.com.key、 example.com.cer、 fullchain.cer、ca.cer,安装hysteria时指定到fullchain.cer(证书有效期60天,所以要在本机生成并设置自动更新)
** 亦可参照这篇文章:
nginx 部署 Let’s encrypt 免费ssl证书流程

嫌麻烦的可以使用宝塔面板:
第一步:换源(非必要)
第二步:安装宝塔面板
第三步:输入bt,选择8,改宝塔面板端口为nat开放的端口
第四步:进入宝塔面板安装nignx(其它的都取消勾选,只安装nignx)
第五步:添加网站域名(不需要指定端口,直接添加域名即可)
第六步:站点配置SSL菜单里申请 Let’s Encrypt,验收方式选择“DNS验证”然后按要求操作,证书会立即签发
第七步:站点配置的配置文件菜单里可以看到 ssl_certificate 跟 ssl_certificate_key 的具体目录,记录备用
第八步:安装hysteria,使用本地证书文件(使用上一步的两个目录路径即可)


   

============

结语:打从一年前认识了Hysteria https://www.mpyes.com/2022.04.24/19:38:59/2949 用了这么久总体感觉还是非常好用的,家里 OpenWrt 旁路由使用ShadowSocksR Plus+持续在线无压力稳定得很,毕竟这玩意比较小众所以暂时并没有被GFW特殊关照。

   

==================

==================

update 2023/05/25 22:12 

前晚在家里旁路由部署了这个tw线路,晚上还用手机看了一个多小时youtube,一切正常
结果次日早上起床,线路就不通了,加了电报群发现是被攻击了
今天再次查看情况,管理员取消ddns了,要求用户自己安装ddns获取ipv4
倒不是责怪,这种情况习以为常了,有的低价影响市场会被人家打、有的故意低价割韭菜都是可能的
买的时候其实就当玩具机买的,纯粹是手痒,毕竟自己手里一堆小鸡流量根本用不完的

所以大厂贵自然有贵的道理,比如我的阿里云hk轻量,24一个月,部署了好几个月都稳稳当当的很少掉线
再如我的瓦工dc6,好多年了一直稳定着,所以大厂价格贵,一是线路很稳定,二是技术较好抗打能力强

VirMach Debian 安装 Hysteria

姚洪楼 发表于 学习备忘录 分类,标签:
0

年前重新刷了OpenWRT,还重新安装了Hysteria,结果不知道是哪里的问题导致VPS上的Hysteria经常自动关闭
于是重装了VPS的Debian,之前用的Debian8、现在换成了Debian10(VirMach取消了8跟9,只提供10跟11)
刷机之后,不知道是不是VirMach过度精简系统的问题,默认不带curl也就罢了,居然连sudo也不带
并且 apt update 也是一堆报错,很是让人崩溃

好在默认带了wget命令,于是直接使用wget进行安装hysteria

wget https://git.io/hysteria.sh && chmod +x hysteria.sh && ./hysteria.sh


结果提示:Network Error: Can’t connect to Github for checking hihy version!
看来前面安装sudo、curl出错也都是同样的原因

我选择1安装hysteria,结果提示我降级什么的,于是直接无脑全部选y任它折腾
一堆操作猛如虎,不但hysteria脚本的Network Error给整没了,就连curl都给我装好了

顺利安装好了hysteria,然后在openwrt更新了配置,又可以愉快的玩耍了
希望更新过后能像以前一样稳定运行N天都不掉线!