apernet/hysteria

使用443端口作为服务和证书签发问题

giveup opened this issue · 1 comments

描述问题
hysteria监听443端口作为服务端口,启动成功后,证书成功签发,但是此时客户端无法连接服务端。

如何复现
使用下面的yaml配置启动

预期行为
客户端正常连接

日志
第一次启动时没有打印日志,考虑到频繁启动服务有可能触发letsencrypt的风控,也就没有使用打印日志的方式启动。

设备和操作系统
Linux服务端
surge客户端

额外信息
配置文件

acme:
  domains:
    - domain
  email: email
  ca: letsencrypt
  dir: my_acme_dir
  type: tls

auth:
  type: password
  password: password
masquerade:
  type: proxy
  proxy:
    url: https://www.microsoft.com/
    rewriteHost: true
  listenHTTP: :80
  listenHTTPS: :443
  forceHTTPS: true

resolver:
  https:
    addr: 8.8.8.8:443
    timeout: 10s
    sni: dns.google
    insecure: false

curl请求日志,报错似乎是因为反向代理microsoft的原因,

% curl -L https://domain/
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
 
You don't have permission to access "http&#58;&#47;&#47;www&#46;microsoft&#46;com&#47;AK&#95;PM&#95;VPATH1&#47;361563&#47;Static&#46;htm" on this server.<P>
Reference&#32;&#35;18&#46;55f7dead&#46;1723874810&#46;1f1669
<P>https&#58;&#47;&#47;errors&#46;edgesuite&#46;net&#47;18&#46;55f7dead&#46;1723874810&#46;1f1669</P>
</BODY>
</HTML>

这个 curl 输出表明 hysteria 已经成功启动, 且证书成功签发, 显示此错误是微软方面的问题。

请注意 hysteria 连接需要 UDP 443 访问, curl 能用无法表明这一点(curl 是用的 TCP 443), 如果你连不上, 且客户端提示 connect error: timeout: no recent network activit, 请检查你的服务器防火墙和 VPS 后台防火墙是否允许 UDP 443 端口。

如果客户端显示其他报错, 请阅读此指南
https://hysteria.network/zh/docs/advanced/Troubleshooting/

另外, 我们已不再建议用户反向代理微软系网站, 因为微软会认为你在搭建看起来和微软网站一样的「钓鱼网站」来骗取微软用户名和密码, 然后你给的 VPS 服务商发送滥用通知。