New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于 h2s 与 v2ray 进行代理链拼接的说明与讨论 #1
Comments
上述的方式是一个预期的将streamSettings传导出去的方式。 顺便说一句,VMess的所有数据都通过stream (TCP)的方式传输,可以安全地使用上述方式代理客户端的TCP和UDP数据。 |
另外提一下, 直接用 Dokodemo-door 搭配 h2s 做成透明代理也是可行的, 不过使用时间不长稳定性尚未测试。 {
"inbound":{
"domainOverride": ["tls","http"],
"port": 12345,
"protocol": "dokodemo-door",
"settings": {
"network": "tcp",
"followRedirect": true
}
},
"outbound": {
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 3378
}
]
}
}
} |
麻烦楼主帮忙看一下我的配置哪里有问题,客户端具体配置如下: 错误提示: |
"address": "127.0.0.1",//不确定此处填哪个地址?
"port": 19688//同上 我不是有写吗 "address": "在此填上原本应该填在 VMess 的 address 里的内容", // 注意这里,一般来说就是你的 v2ray 服务端地址
"port": 443 // 在此填上原本应该填在 VMess 的 port 里的内容。同上 就是说,假如你是直连的,不用经过什么 h2s 之类的东西,你原本应该在 VMess 那段填上的内容。也就是你的 v2ray 服务器地址。 |
如何让程序在后台运行不显示界面呢?能否指导一下?另外能否在此基础上区分国内外的网站,国内走公司代理,国外走v2ray? 路由设置的策略能否指导一下? |
@pharmcube 如果是 Windows,可以建立一个批处理文件 mshta vbscript:createobject("wscript.shell").run("C:\path\to\your\h2s 带上参数",0)(window.close) *nix 直接用 nohup。 剩下的问题请到 v2ray 那边问吧。 |
为了Google一直在内外网切换,先谢了 |
今天测试了一下,成功了,完全没有问题。感谢:smiley: |
一开始还行,后面h2s 提示出现 407错误,可能我的账号被锁了! |
我贴一下H2S的配置,
}, 感觉是认证的配置没有生效,5分钟左右提示如下: 请帮忙看看,谢谢 |
@vikibg 在出现提示前使用都正常吗?我感觉可能这个认证有时限之类的。 |
@Equim-chan 分析的蛮对的,出现407后,我尝试将浏览器切换到默认代理,能够正常上网,再切回h2s+v2ray后,407错误就不报了,也可以正常穿墙了。 是不是h2s缺少重新认证的机制? 内网的http代理功能较强,正常是AD域作统一认证-kerberos |
另外 H2S 一直有如下错误告警: |
@vikibg h2s 没有考虑重新认证的情况。 那些错误提示是说代理服务器那边 RST 了(可能有 rate limit 之类的)。 |
我在h2s 配置里设置 "retries": 8 ,max retry exceeded 报错减少了。 407的问题还是不定期出现,需要重启h2s或者改用常规代理方式重新认证。 H2S+V2ray 很厉害,
|
Damn gorgeous, this helped me. |
公司有HTTP PROXY,我在瓦工上架了V2ray,用的朴素TCP Handshake failed 这个是没救了? |
h2s config V2ray config |
error log 2018/06/26 17:13:59 [Warning] App|DNS: failed to lookup IPs for domain www.google.com. > lookup www.google.com.: no such host |
我来更新一下 2018/06/28 16:26:05.448673 h2s: handshake upstream: 407 Proxy Authentication Req C:\Users\Programs\v2ray>h2s.exe -config h2s.json 今天仔细看了一下h2s.json的 配置,发现address 和username password 之间有一个大括号,被隔开了,如下。 { "address": "172.31.2.20" 将大括号删除后配置如下 { "address": "172.31.2.20", 407的问题解决了,看来程序本身没有问题,是我的配置的问题。 谢谢作者,谢谢大家。 |
麻烦看一下我这个配置有没有什么问题,我现在是国内直连能访问,但是走vmess的访问不了, h2s日志一直503,感觉没访问到我自己的vmess服务 |
请教下,我按照您上面说的配置如下(不用二级代理直连国外vps已经成功):
服务启动以后,一直报错:
请问这种可能是什么原因?已经搞了三天了… |
已解决, @Equim-chan 大的配置sample可能是因为版本迭代的原因,在我的环境下不生效,需要调整。 |
有个问题
那如果内网http代理有过滤网站,我使用这个配置是不是无法绕过呢??
麻烦作者有时间就看一下,谢谢了 |
这个要看你的v2ray服务端ip在不在你的内网代理过滤范围内了,比如你通过v2ray过墙访问google,你的内网代理只能看到你是在访问你的v2ray服务端 |
@phantomedc 我现在的问题是公司访问外网要通过http代理, 有些网站被禁止,访问会出现504 ,我使用h2s搭配v2ray 访问网络,公司应该是无法知道我访问什么地方,但还是504 , 并且我google也无法访问 |
@else05 上面那位同学说得很好了,可能你没理解对,是你的 http 代理屏蔽了你「发往 v2ray 服务端的请求」。
它肯定知道你要访问的地址是什么,也就是你的 v2ray 服务端的地址。 |
能否麻烦分享一下您调整后的配置?是 |
xray的 |
|
如果你想让 h2s 与 v2ray 以代理链(传出代理)的方式配合使用的话,那么就需要注意一些地方。
首先必须要明确的一点是,无论如何 h2s 都只接受 TCP 的输入,因为 HTTP 代理只能处理 TCP。
假如你原先的 v2ray 配置没有使用自定义的传输,即
streamSettings
为默认值,也就是朴素的 TCP (朴素 VMess)的话,那么直接将 h2s 的监听地址设为一个outboundDetour
再设置传出代理proxySettings
桥接过去即可,下文就可以不用看了。而如果你设置了streamSettings
,比如配置了 TLS 或/与 WS 的话,就必须要进行额外的配置才可正常使用,也就是下文要讲的内容。原理上说,之所以在这种情况下不能直接设置
proxySettings
,是因为 v2ray 目前(v3.15)不能同时应用streamSettings
与proxySettings
,即,这两个设置是互斥的,只有一个能生效。这是在 v2ray 的文档上就有写的:这大概是因为 v2ray 的设计者没有考虑到将传输层也可以作为代理链数据的一部分发给下游,或者是出于代理模型本身的考虑(比如 h2s 无法处理 UDP,那么就不能将 mKCP 的 stream 传给下游,这是在设计上就不允许的)。总之,我们现在需要解决两个设置冲突的问题。否则
streamSettings
无法生效的话,TLS/WS 也就无法起作用了。从表面上看,结果会表现为 v2ray 报协议头错误(如果是 VMess + TLS + WS 的话就是 VMess 头错误)。这里我假定你的代理模式是 VMess + TLS + WS,并且已完成了符合“传出将直连至服务端”这一场景的配置,现在要让这个协议栈与 h2s 合为代理链。即
那么就要在原有配置文件的基础上作出一些修改。
以下为上述场景中 v2ray 的参考配置。省去了一些冗余的部分,只提重点。
如果在 h2s 与 v2ray 的桥接问题上有疑问,请在本 issue 中提出。
The text was updated successfully, but these errors were encountered: