实测Hysteria 2 一个强大、快速、抗审查的代理工具

image-20240326195535589

满速传输数据包,优化拥堵算法

有什么用

实现客户端当前恶劣网络环境下的满速访问Hysteria服务端

突破网速限制,应该说是:某种特定情况下,突破往常生活上使用的网速,再比如在网络拥堵的情况下

Hysteria is a feature-packed proxy & relay utility optimized for lossy, unstable connections, powered by a customized QUIC protocol.

怎么用

服务端搭建好以后;根据客户机环境,通过在客户机运行相应的客户端,socks5代理连接到服务端;

客户端运行(以MAC OSX为例):

同目录下新建一个配置文件config.json

vi config.json
#以下为示例的文件内容
{
  "server": "op.carlzeng.com:8998",
  "auth": "your_password",
  "up_mbps": 50,
  "down_mbps": 250,
  "tls": {
    "insecure": true
  },
  "socks5": {
    "listen": "127.0.0.1:1080"
  },
  "http": {
    "listen": "127.0.0.1:8080"
  }
}



#MAC OSX下载该客户端文件后,赋予执行权限
chmod +x hysteria-darwin-amd64

#运行客户端
./hysteria-darwin-amd64  

相关内容

实现方法

服务端(搭建及配置)

服务端docker-compse.yml

version: "3"                                                                                              
services:                                                                                                 
     hysteria:                                                                                            
          ports:                                                                                          
             - 8998:8998/udp                                                                              
          container_name: hysteria                                                                        
          restart: always                                                                                 
          volumes:                                                                                        
             - .:/etc/hysteria/
             - "/etc/localtime:/etc/localtime:ro"
          image: teddysun/hysteria

server.yaml

listen: :8998

tls:
  cert: /etc/hysteria/cert.crt
  key: /etc/hysteria/private.key

auth:
  type: password
  password: your_password

resolver:
  type: https
  https:
    addr: 8.8.8.8:443 #假设你可以访问google的域名,否则换掉
    timeout: 10s

upload cert.crt, private.key to the /etc/hysteria/. Or download it from here

Debian防火墙,开启8998端口

客户端

以下以Mac运行客户端为例,分享服务端于客户端之间的联系以及配合

下载 相应平台的hysteria客户端,比如下到文件:

hysteria-darwin-amd64
– 无法运行,即便切换至root运行也是报错误 -sh: ./hysteria-darwin-amd64: Permission denied
– 解决办法:

chmod +x hysteria-darwin-amd64 

运行./hysteria-darwin-amd64,然后打开MAC OSX的系统首选项》安全与隐私(Security & Privacy)〉常规(Genernal)》Allow apps downloaded from:。。。 点击运行(一次性授权完成)

新建config.json

{                                                                                                    
  "server": "op.carlzeng.com:8998",                                                                  
  "auth": "******",                                                                 
  "up_mbps": 50,                                                                                     
  "down_mbps": 250,                                                                                  
  "socks5": {                                                                                        
    "listen": "127.0.0.1:1080"                                                                       
  },                                                                                                 
  "http": {                                                                                          
    "listen": "127.0.0.1:8080"                                                                       
  }

路由器上设置端口转发

image-20240326114307042

新增一条Hysteria8998,转发路由器公网上的IP+8998端口到局域网内部的特定相应服务上,保存并应用

错误及排查

  1. TLS: failed to verify
FATAL   failed to initialize client     {"error": "connect error: CRYPTO_ERROR 0x12a (local): tls: failed to verify c
ertificate: x509: “www.baidu.com” certificate is not standards compliant"}  

解决办法:修改客户端配置,添加

tls:
  insecure: true

https://github.com/apernet/hysteria/issues/966

  1. dial error: resolve error; network is unreachable
2024-03-26T12:32:52+08:00       WARN    SOCKS5 TCP error        {"addr": "127.0.0.1:55970", "reqAddr": "www.sohu.com:80", "error": "dial error: resol
ve error: Post \"https://238.5.5.5:443/dns-query\": dial tcp 238.5.5.5:443: connect: network is unreachable"}                                        

解决办法:

  • 服务端重新docker pull 最新版的(搭配客户端的版本号)
  • 修改配置文件中的IP地址为223.5.5.5

特殊流量怎么处理

由于浏览器使用了socks5代理;无法穿墙;如何结合clash使用呢??

目前仅仅是浏览页面全部走服务端的流量去了,那么特殊流量怎么处理?

解决办法:

服务端配置需要增加一些内容拓展功能(Hysteria还是强大的,很多深入的功能)

修改server.yaml文件内容

listen: :8998

tls:
  cert: /etc/hysteria/cert.crt
  key: /etc/hysteria/private.key

auth:
  type: password
  password: ******

resolver:
  type: https
  https:
    addr: 223.5.5.5:443 #8.8.8.8:443
    timeout: 10s

outbounds:
  - name: out_direct
    type: direct
  - name: out_proxy
    type: socks5
    socks5:
      addr: 192.168.6.110:8080 #请根据自身情况,修改为服务端可用的socks5服务器

acl:
  file: alc.txt

同目录下,新增alc.txt文件:

out_proxy(suffix:google.com)
out_proxy(suffix:twitter.com)
out_proxy(suffix:youtube.com)
out_proxy(suffix:googlevideo.com)
out_proxy(suffix:googleapis.com)

#从proxypool中替换而来
out_proxy(suffix:9to5mac.com)
out_proxy(suffix:abpchina.org)
out_proxy(suffix:adblockplus.org)
out_proxy(suffix:adobe.com)
out_proxy(suffix:alfredapp.com)
out_proxy(suffix:amplitude.com)
out_proxy(suffix:ampproject.org)
out_proxy(suffix:android.com)
out_proxy(suffix:angularjs.org)
out_proxy(suffix:aolcdn.com)
out_proxy(suffix:apkpure.com)
out_proxy(suffix:appledaily.com)
out_proxy(suffix:appshopper.com)
out_proxy(suffix:appspot.com)
out_proxy(suffix:arcgis.com)
out_proxy(suffix:archive.org)
out_proxy(suffix:armorgames.com)
out_proxy(suffix:aspnetcdn.com)
out_proxy(suffix:att.com)
out_proxy(suffix:awsstatic.com)
out_proxy(suffix:azureedge.net)
out_proxy(suffix:azurewebsites.net)
out_proxy(suffix:bing.com)
out_proxy(suffix:bintray.com)
out_proxy(suffix:bit.com)
out_proxy(suffix:bit.ly)
out_proxy(suffix:bitbucket.org)
out_proxy(suffix:bjango.com)
out_proxy(suffix:bkrtx.com)
out_proxy(suffix:blog.com)
out_proxy(suffix:blogcdn.com)
out_proxy(suffix:blogger.com)
out_proxy(suffix:blogsmithmedia.com)
out_proxy(suffix:blogspot.com)
out_proxy(suffix:blogspot.hk)
out_proxy(suffix:bloomberg.com)
out_proxy(suffix:box.com)
out_proxy(suffix:box.net)
out_proxy(suffix:cachefly.net)
out_proxy(suffix:chromium.org)
out_proxy(suffix:cl.ly)
out_proxy(suffix:cloudflare.com)
out_proxy(suffix:cloudfront.net)
out_proxy(suffix:cloudmagic.com)
out_proxy(suffix:cmail19.com)
out_proxy(suffix:cnet.com)
out_proxy(suffix:cocoapods.org)
out_proxy(suffix:comodoca.com)
out_proxy(suffix:crashlytics.com)
out_proxy(suffix:culturedcode.com)
out_proxy(suffix:d.pr)
out_proxy(suffix:danilo.to)
out_proxy(suffix:dayone.me)
out_proxy(suffix:db.tt)
out_proxy(suffix:deskconnect.com)
out_proxy(suffix:disq.us)
out_proxy(suffix:disqus.com)
out_proxy(suffix:disquscdn.com)
out_proxy(suffix:dnsimple.com)
out_proxy(suffix:docker.com)
out_proxy(suffix:dribbble.com)
out_proxy(suffix:droplr.com)
out_proxy(suffix:duckduckgo.com)
out_proxy(suffix:dueapp.com)
out_proxy(suffix:dytt8.net)
out_proxy(suffix:edgecastcdn.net)
out_proxy(suffix:edgekey.net)
out_proxy(suffix:edgesuite.net)
out_proxy(suffix:engadget.com)
out_proxy(suffix:entrust.net)
out_proxy(suffix:eurekavpt.com)
out_proxy(suffix:evernote.com)
out_proxy(suffix:fabric.io)
out_proxy(suffix:fast.com)
out_proxy(suffix:fastly.net)
out_proxy(suffix:fc2.com)
out_proxy(suffix:feedburner.com)
out_proxy(suffix:feedly.com)
out_proxy(suffix:feedsportal.com)
out_proxy(suffix:fiftythree.com)
out_proxy(suffix:firebaseio.com)
out_proxy(suffix:flexibits.com)
out_proxy(suffix:flickr.com)
out_proxy(suffix:flipboard.com)
out_proxy(suffix:g.co)
out_proxy(suffix:gabia.net)
out_proxy(suffix:geni.us)
out_proxy(suffix:gfx.ms)
out_proxy(suffix:ggpht.com)
out_proxy(suffix:ghostnoteapp.com)
out_proxy(suffix:git.io)
out_proxy(suffix:github.com)
out_proxy(suffix:globalsign.com)
out_proxy(suffix:gmodules.com)
out_proxy(suffix:godaddy.com)
out_proxy(suffix:golang.org)
out_proxy(suffix:gongm.in)
out_proxy(suffix:goo.gl)
out_proxy(suffix:goodreaders.com)
out_proxy(suffix:goodreads.com)
out_proxy(suffix:gravatar.com)
out_proxy(suffix:gstatic.com)
out_proxy(suffix:gvt0.com)
out_proxy(suffix:hockeyapp.net)
out_proxy(suffix:hotmail.com)
out_proxy(suffix:icons8.com)
out_proxy(suffix:ifixit.com)
out_proxy(suffix:ift.tt)
out_proxy(suffix:ifttt.com)
out_proxy(suffix:iherb.com)
out_proxy(suffix:imageshack.us)
out_proxy(suffix:img.ly)
out_proxy(suffix:imgur.com)
out_proxy(suffix:imore.com)
out_proxy(suffix:instapaper.com)
out_proxy(suffix:ipn.li)
out_proxy(suffix:is.gd)
out_proxy(suffix:issuu.com)
out_proxy(suffix:itgonglun.com)
out_proxy(suffix:itun.es)
out_proxy(suffix:ixquick.com)
out_proxy(suffix:j.mp)
out_proxy(suffix:js.revsci.net)
out_proxy(suffix:jshint.com)
out_proxy(suffix:jtvnw.net)
out_proxy(suffix:justgetflux.com)
out_proxy(suffix:kat.cr)
out_proxy(suffix:klip.me)
out_proxy(suffix:libsyn.com)
out_proxy(suffix:linode.com)
out_proxy(suffix:lithium.com)
out_proxy(suffix:littlehj.com)
out_proxy(suffix:live.com)
out_proxy(suffix:live.net)
out_proxy(suffix:livefilestore.com)
out_proxy(suffix:llnwd.net)
out_proxy(suffix:macid.co)
out_proxy(suffix:macromedia.com)
out_proxy(suffix:macrumors.com)
out_proxy(suffix:mashable.com)
out_proxy(suffix:mathjax.org)
out_proxy(suffix:medium.com)
out_proxy(suffix:mega.co.nz)
out_proxy(suffix:mega.nz)
out_proxy(suffix:megaupload.com)
out_proxy(suffix:microsofttranslator.com)
out_proxy(suffix:mindnode.com)
out_proxy(suffix:mobile01.com)
out_proxy(suffix:modmyi.com)
out_proxy(suffix:msedge.net)
out_proxy(suffix:myfontastic.com)
out_proxy(suffix:name.com)
out_proxy(suffix:nextmedia.com)
out_proxy(suffix:nsstatic.net)
out_proxy(suffix:nssurge.com)
out_proxy(suffix:nyt.com)
out_proxy(suffix:nytimes.com)
out_proxy(suffix:omnigroup.com)
out_proxy(suffix:onedrive.com)
out_proxy(suffix:onenote.com)
out_proxy(suffix:ooyala.com)
out_proxy(suffix:openvpn.net)
out_proxy(suffix:openwrt.org)
out_proxy(suffix:orkut.com)
out_proxy(suffix:osxdaily.com)
out_proxy(suffix:outlook.com)
out_proxy(suffix:ow.ly)
out_proxy(suffix:paddleapi.com)
out_proxy(suffix:parallels.com)
out_proxy(suffix:parse.com)
out_proxy(suffix:pdfexpert.com)
out_proxy(suffix:periscope.tv)
out_proxy(suffix:pinboard.in)
out_proxy(suffix:pinterest.com)
out_proxy(suffix:pixelmator.com)
out_proxy(suffix:pixiv.net)
out_proxy(suffix:playpcesor.com)
out_proxy(suffix:playstation.com)
out_proxy(suffix:playstation.com.hk)
out_proxy(suffix:playstation.net)
out_proxy(suffix:playstationnetwork.com)
out_proxy(suffix:pushwoosh.com)
out_proxy(suffix:rime.im)
out_proxy(suffix:servebom.com)
out_proxy(suffix:sfx.ms)
out_proxy(suffix:shadowsocks.org)
out_proxy(suffix:sharethis.com)
out_proxy(suffix:shazam.com)
out_proxy(suffix:skype.com)
out_proxy(suffix:smartdnsloadbalance1.com)
out_proxy(suffix:smartmailcloud.com)
out_proxy(suffix:sndcdn.com)
out_proxy(suffix:sony.com)
out_proxy(suffix:soundcloud.com)
out_proxy(suffix:sourceforge.net)
out_proxy(suffix:spotify.com)
out_proxy(suffix:squarespace.com)
out_proxy(suffix:sstatic.net)
out_proxy(suffix:st.luluku.pw)
out_proxy(suffix:stackoverflow.com)
out_proxy(suffix:startpage.com)
out_proxy(suffix:staticflickr.com)
out_proxy(suffix:steamcommunity.com)
out_proxy(suffix:symauth.com)
out_proxy(suffix:symcb.com)
out_proxy(suffix:symcd.com)
out_proxy(suffix:tapbots.com)
out_proxy(suffix:tapbots.net)
out_proxy(suffix:tdesktop.com)
out_proxy(suffix:techcrunch.com)
out_proxy(suffix:techsmith.com)
out_proxy(suffix:thepiratebay.org)
out_proxy(suffix:theverge.com)
out_proxy(suffix:time.com)
out_proxy(suffix:timeinc.net)
out_proxy(suffix:tiny.cc)
out_proxy(suffix:tinypic.com)
out_proxy(suffix:tmblr.co)
out_proxy(suffix:todoist.com)
out_proxy(suffix:trello.com)
out_proxy(suffix:trustasiassl.com)
out_proxy(suffix:tumblr.co)
out_proxy(suffix:tumblr.com)
out_proxy(suffix:tweetdeck.com)
out_proxy(suffix:tweetmarker.net)
out_proxy(suffix:twitch.tv)
out_proxy(suffix:txmblr.com)
out_proxy(suffix:typekit.net)
out_proxy(suffix:ubertags.com)
out_proxy(suffix:ublock.org)
out_proxy(suffix:ubnt.com)
out_proxy(suffix:ulyssesapp.com)
out_proxy(suffix:urchin.com)
out_proxy(suffix:usertrust.com)
out_proxy(suffix:v.gd)
out_proxy(suffix:v2ex.com)
out_proxy(suffix:vimeo.com)
out_proxy(suffix:vimeocdn.com)
out_proxy(suffix:vine.co)
out_proxy(suffix:vivaldi.com)
out_proxy(suffix:vox-cdn.com)
out_proxy(suffix:vsco.co)
out_proxy(suffix:vultr.com)
out_proxy(suffix:w.org)
out_proxy(suffix:w3schools.com)
out_proxy(suffix:webtype.com)
out_proxy(suffix:wikiwand.com)
out_proxy(suffix:wikileaks.org)
out_proxy(suffix:wikimedia.org)
out_proxy(suffix:wikipedia.com)
out_proxy(suffix:wikipedia.org)
out_proxy(suffix:windows.com)
out_proxy(suffix:windows.net)
out_proxy(suffix:wire.com)
out_proxy(suffix:wordpress.com)
out_proxy(suffix:workflowy.com)
out_proxy(suffix:wp.com)
out_proxy(suffix:wsj.com)
out_proxy(suffix:wsj.net)
out_proxy(suffix:xda-developers.com)
out_proxy(suffix:xeeno.com)
out_proxy(suffix:xiti.com)
out_proxy(suffix:yahoo.com)
out_proxy(suffix:yimg.com)
out_proxy(suffix:ying.com)
out_proxy(suffix:yoyo.org)
out_proxy(suffix:ytimg.com)
out_proxy(suffix:telegra.ph)
out_proxy(suffix:telegram.org)
out_proxy(91.108.4.0/22)
out_proxy(91.108.8.0/22)
out_proxy(91.108.12.0/22)
out_proxy(91.108.16.0/22)
out_proxy(91.108.56.0/22)
out_proxy(149.154.160.0/22)
out_proxy(149.154.164.0/22)
out_proxy(149.154.168.0/22)
out_proxy(149.154.172.0/22)
out_proxy(149.154.172.0/22)

#out_proxy(geoip:us)



# 直连所有其他地址
direct(all)

下一步 添加geoip.dat

假如,假如acl.txt配置了地理位置的选项,比如:out_proxy(geoip:us)

geoip.dat 手动下载了并放在了服务端的相同目录,可是尴尬的是客户端程序仍然会尝试下载,然后失败:

hysteria# docker-compose up
[+] Running 2/1
 ✔ Network hysteria_default  Created                                                                 0.1s 
 ✔ Container hysteria        Created                                                                 0.1s 
Attaching to hysteria
hysteria  | 2024-03-27T08:31:47+08:00   INFO    server mode
hysteria  | 2024-03-27T08:31:47+08:00   INFO    downloading database    {"filename": "geoip.dat", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"}
hysteria  | 2024-03-27T08:32:17+08:00   ERROR   failed to download database     {"error": "Get \"https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat\": dial tcp 8.7.198.46:443: i/o timeout"}
hysteria  | 2024-03-27T08:32:17+08:00   FATAL   failed to load server config    {"error": "invalid config: acl.file: error at line 286: Get \"https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat\": dial tcp 8.7.198.46:443: i/o timeout"}
hysteria exited with code 0

暂时解决办法是:取消地域的alc设置,这样服务端就不需要去下载这个geoip.dat文件;错误不被触发。

既然服务端需要下载,我手动下载后,上传到服务端;可是不知道要放到那个目录了?谁知道的,留言或邮件说一声,谢谢

感受

客户端的设置上传和下载的速度,不是越大越好(超出实际的大后,设置越大反而网速效果越差);
可以测速一下尽量填写准确的。

“up_mbps”: 50,
“down_mbps”: 250,

灵感来源

teddysun/hysteria

Hysteria2|歇斯底里科学上网节点搭建教程,hysteria2一键安装教程,超级简单、详细的搭建方案,搭建vps,hysteria2协议拯救垃圾服务器,vless协议和hysteria2网速对比

视频总结

快速入门 完整服务端配置 ALC


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注