Youtube视频
相关链接
官网)
仓库)
服务端安装脚本
# 最新版
bash <(curl -fsSL https://get.hy2.sh/)
# 指定版本
bash <(curl -fsSL https://get.hy2.sh/) --version v2.2.0
# 卸载
bash <(curl -fsSL https://get.hy2.sh/) --remove
服务端配置说明
# 监听端口
listen: :443
# 使用tls自用证书,与acme互斥
tls:
cert: idev.dev.cer
key: idev.dev.key
# 使用acme自动申请证书,与tls互斥
acme:
# 签发证书的域名
domains:
- domain1.com
- domain2.org
email: your@email.net
# letsencrypt 或 zerossl
ca: zerossl
# 是否禁止使用http验证
disableHTTP: false
# 是否禁止使用tlsapln验证
disableTLSALPN: false
# 指定http验证端口
altHTTPPort: 8080
# 指定http验证端口
altTLSALPNPort: 4443
# 存放acme账号密钥和证书的目录
dir: my_acme_dir
# 混淆,如果你的网络针对性屏蔽了 QUIC 或 HTTP/3 流量(但允许其他 UDP 流量)
# 需要指定混淆密码,开启混淆将失去HTTP/3伪装
obfs:
type: salamander
salamander:
password: salamanderpassword
# quic参数
quic:
# 流接收窗口是指数据流能够接收未被处理的数据大小,是用于做流量控制的。如果你的服务器性能比较好,速度和延迟都比较不错,你可以尝试设置更高的值,提高性能。
# 反之,如果你的服务器性能一般,网络也不好,容易丢包,那最好就别改,甚至可以尝试降低,否则丢包数据包还得重发。
# 初始化流接收窗口大小
initStreamReceiveWindow: 8388608
# 最大流接收窗口大小
maxStreamReceiveWindow: 8388608
# 连接接收窗口是指QUIC连接所有数据流接收窗口的总和,可以理解为控制的是整体可以接收的流量大小,而流接收窗口是控制单个数据流。官方建议设置2:5
# 初始化连接接收窗口
initConnReceiveWindow: 20971520
# 最大连接接收窗口
maxConnReceiveWindow: 20971520
# 最大空闲超时时间,超时后会关闭连接
maxIdleTimeout: 30s
# 最大并发传入流的数量,意思是单个连接最大的数据流数量,简单理解就是多路复用的意思
maxIncomingStreams: 1024
# 是否禁用MTU探测,一般情况都不会禁用
disablePathMTUDiscovery: false
# 带宽限速,设置为0代表不限制,up代表客户端的最大下载速度,down代表客户端最大上传速度
# 最好设置为服务器的最大带宽,不设置或者设置为0则使用BBR
bandwidth:
up: 1 gbps
down: 1 gbps
# 是否忽略客户端的带宽设置,会使用BBR拥塞控制算法
ignoreClientBandwidth: false
# 是否禁用UDP转发,禁用后支持TCP转发
disableUDP: false
#UDP空闲超时时间
udpIdleTimeout: 60s
auth:
# 使用单密码验证
type: password
password: Se7RAuFZ8Lzg
# 使用用户密码验证
userpass:
user1: pass1
user2: pass2
user3: pass3
# 使用http验证,客户端尝试连接的时候会发送以下请求到服务端
# {
# "addr": "123.123.123.123:44556", #客户端的IP和端口
# "auth": "something_something", # 认证信息
# "tx": 123456 # 客户端的下载速率
# }
# 服务端必须响应以下数据结果,状态码必须200
# {
# "ok": true, # 是否允许客户端连接
# "id": "john_doe" # 客户端ID,用于日志和流量统计API
# }
http:
# 处理验证的URL
url: http://your.backend.com/auth
# 是否禁用HTTPS,当设置的URL为https时适用
insecure: false
# 处理验证的命令,验证时,将执行以下命令并附带客户端提交的认证参数 addr auth tx
# 注意,必须将用户ID输出到`stdout`,也就是标准输出,如果运行连接退出代码为0,否则返回非0
# 例如:
# echo "Elden"
# exit 0
command: /etc/some_command
# DNS解析,省略则使用系统DNS
resolver:
type: udp
tcp:
addr: 8.8.8.8:53
timeout: 4s
udp:
addr: 8.8.4.4:53
timeout: 4s
tls:
addr: 1.1.1.1:853
timeout: 10s
sni: cloudflare-dns.com
insecure: false
https:
addr: 1.1.1.1:443
timeout: 10s
sni: cloudflare-dns.com
insecure: false
# ACL,访问控制列表
# 语法说明:https://v2.hysteria.network/zh/docs/advanced/ACL/
acl:
# 自定义文件规则
file: some.txt
# 内联规则
inline:
- reject(v2ex.com)
- reject(*.v2ex.com)
- reject(all, udp/443)
- reject(geoip:cn)
# 忽略则自动从https://github.com/Loyalsoldier/v2ray-rules-dat下载,只有当有规则的时候才会下载
# geoip: geoip.dat
# geosite: geosite.dat
# 出站,目前支持direct,socks5和http
# 内置出站direct,reject,default,default代表没有配置的时候使用direct,如果outbound添加了一个名为direct的outbound则会覆盖内置出站
# 如果不指定ACL,所有连接都会使用第一个出站进行路由,其他会被忽略
outbounds:
# name用于ACL规则
# 直连出站
- name: my_outbound_1
type: direct
# 设置直连的规则
direct:
# 支持auto、64、46、6、4,auto代表双栈,会同时尝试使用ipv4和ipv6,64代表ipv6优先,46代表ipv4优先,6代表只使用ipv6,4代表只使用ipv4
mode: auto
# 绑定的ipv4地址
bindIPv4: 2.4.6.8
# 绑定的ipv6地址
bindIPv6: 0:0:0:0:0:ffff:0204:0608
# 绑定的网络接口
bindDevice: eth233
# socks5代理出站
- name: my_outbound_2
type: socks5
socks5:
addr: shady.proxy.ru:1080
username: hackerman
password: Elliot Alderson
# http/https代理出站
- name: my_outbound_3
type: http
http:
url: http://username:password@sketchy-proxy.cc:8081
insecure: false
# 流量统计API
# 流量端点:`GET /traffic`,返回用户的流量信息,`/traffic?clear=1`,增加clear=1参数,返回结果的同时清空统计数据
# 踢下线端点:`POST /kick`,提供["用户名1","用户名2"]数组列表,将用户踢下线,客户端会尝试重连,应当踢下线后服务端屏蔽该用户
trafficStats:
# API监听的端口
listen: :9999
# API访问的密码,设置后需要请求的Authorization头中提供
secret: some_secret
# 伪装,支持proxy反向代理,file文件服务器,string返回固定字符串
masquerade:
type: proxy
proxy:
url: https://github.com/
rewriteHost: true
file:
dir: /www/masq
string:
content: hello stupid world
headers:
content-type: text/plain
custom-stuff: ice cream so good
statusCode: 200
# 同时提供TCP选项,也就是支持80端口以及443端口通过TCP访问网站,不建议修改为自定义端口
listenHTTP: :80
listenHTTPS: :443
# 是否强制HTTPS
forceHTTPS: true
服务端配置精选
listen: :443
tls:
cert: 你的证书文件
key: 你的秘钥文件
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
maxIdleTimeout: 30s
maxIncomingStreams: 1024
disablePathMTUDiscovery: false
bandwidth:
up: 0 gbps
down: 0 gbps
ignoreClientBandwidth: false
disableUDP: false
udpIdleTimeout: 60s
auth:
type: userpass
userpass:
elden: 你的密码
resolver:
type: https
https:
addr: 1.1.1.1:443
timeout: 10s
sni: cloudflare-dns.com
insecure: false
acl:
inline:
- reject(geoip:cn)
trafficStats:
listen: :19999
secret: 你的流量监测密码
masquerade:
type: proxy
proxy:
url: https://github.com/
rewriteHost: true
listenHTTP: :80
listenHTTPS: :443
forceHTTPS: true
客户端配置说明
# 服务器地址,默认443端口
server: idev.dev
# URI形式,已经包含用户名和密码
server: hysteria2://user:pass@idev.dev/
# 认证,URI形式不需要,userpass类型,使用user:password格式
auth: some_password
# tls配置
tls:
sni: idev.dev
# 是否允许禁止TLS验证
insecure: false
# 证书指纹,通过 openssl x509 -noout -fingerprint -sha256 -in your_cert.crt获取
pinSHA256: BA:88:45:17:A1...
# 自定义CA
ca: custom_ca.crt
# 传输层,目前只有udp
transport:
type: udp
udp:
# 端口跳跃间隔
hopInterval: 30s
# 混淆,必须与服务端保持一致
obfs:
type: salamander
salamander:
password: cry_me_a_r1ver
# quic参数
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
maxIdleTimeout: 30s
# 心跳发送间隔,保持与服务端的连接
keepAlivePeriod: 10s
disablePathMTUDiscovery: false
# 带宽限制,可以填写你网络环境的最大理论带宽,mbps、gbps,将会采用客户端以及服务端中的最小值,客户端up=服务端down 客户端down=服务端up
bandwidth:
up: 100 mbps
down: 200 mbps
# 快速打开,启用时,客户端总是立即接受一个连接,不先与服务器确认目的地是否可达。如果服务器随后返回失败或拒绝连接,客户端将关闭连接。
fastOpen: true
# 启用该选项后,客户端只在有传入连接的时候才会连接到服务器。默认行为是在启动时立即连接到服务器
lazy: true
# 代理模式,必须指定一个
# socks5 代理,支持TCP/UDP
socks5:
listen: 127.0.0.1:1080
username: user
password: pass
disableUDP: false
# http/https模式
http:
listen: 127.0.0.1:8080
username: king
password: kong
# 域验证,让使用http代理服务器的用户输出认证信息
realm: Elden
# tcp转发
tcpForwarding:
# 客户端监听的地址端口
- listen: 127.0.0.1:6600
# 通过服务端访问的地址和端口,可以穿透到服务器的内网环境
remote: 127.0.0.1:6600
- listen: 127.0.0.1:6601
remote: other.machine.internal:6601
# udp转发
udpForwarding:
- listen: 127.0.0.1:5300
remote: 127.0.0.1:5300
timeout: 20s
- listen: 127.0.0.1:5301
remote: other.machine.internal:5301
timeout: 20s
客户端配置精选
server: hysteria2://你的用户名:你的密码@你的域名或者IP
tls:
sni: 你的域名
insecure: false
transport:
type: udp
udp:
hopInterval: 30s
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
maxIdleTimeout: 30s
keepAlivePeriod: 10s
disablePathMTUDiscovery: false
bandwidth:
up: 1000 mbps
down: 1000 mbps
fastOpen: true
lazy: false
socks5:
listen: 127.0.0.1:1080
username: elden
password: elden
disableUDP: false
http:
listen: 127.0.0.1:1081
username: elden
password: 123456
端口跳跃
服务端配置
配置端口转发,以下将的端口的UDP转发到443端口
# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443
# IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443
客户端配置
# 指定可跳跃的端口
server: idev.dev:1234,5678,9012
server: idev.dev:20000-50000
server: idev.dev:1234,5000-6000,7044,8000-9000
# 配置端口跳跃的间隔
transport:
udp:
hopInterval: 30s
1 条评论
[...]参考1[...]