Open ginuerzh opened 4 years ago
gost -L red://:12345 -F=mws://www.baidu.com:80?ip=122.223.22.11
iptables -t nat -A OUTPUT -p tcp --match multiport ! --dports 12345,80 -j DNAT --to-destination 127.0.0.1:12345
除了80,12345 端口其他测试都没问题,
但是80端口我日常需要使用,远程连接也需要,
该怎么对特定ip:80进行例外?
而不是对全部80例外?
- gost 内置的 TLS 证书是每次随机生成的还是固定的?若是固定的,是不是相当于所有人共用一个私钥,非常不安全,需要注明一下。
每次启动会生成一次,也可以使用手动生成的证书文件。
- gost 的 ws 作为一种传输协议能否像 v2ray 一样添加host混淆(即使用不同于 server ip 的域名)?或者当前有没有类似的方案实现?
目前不支持host混淆。
gost -L http+ws://11111:22222@:80
请问这种带验证的是加密的吗?也就是墙可以看到传输的内容吗?
当具有多个 -L 和 -F 参数时,实际效果是否如下: 对于每一个 -L 指定的服务,都会按照多个 -F 参数指定的一系列节点进行同样的链式转发?
上述做法中,多个-L参数的摆放顺序是否与最终结果无关?
上述做法是否等效于在配置文件中配置了多个ServeNodes和ChainNodes节点?
relay protocal 实现的是 udp over tcp 吗?
bypass支持先解析后过滤ip吗? 比如 gost -L :8080 -F 192.168.1.1:8081?bypass=chnroutes.ip 这时如果用ip访问,则会跳过下级代理直接访问,但是如果用域名访问,即使域名解析出来在 chnroutes.ip 的范围内,仍然会通过下级代理访问。 甚至下游是socks5协议也是一样。
gost -L http+ws://11111:22222@:80
请问这种带验证的是加密的吗?也就是墙可以看到传输的内容吗?
加密和验证是两种不同的功能,二者没有联系。
- 当具有多个 -L 和 -F 参数时,实际效果是否如下: 对于每一个 -L 指定的服务,都会按照多个 -F 参数指定的一系列节点进行同样的链式转发?
是的,可以看成是多对一的关系,多个-L对应一个链。
- 上述做法中,多个-L参数的摆放顺序是否与最终结果无关?
无关。
- 上述做法是否等效于在配置文件中配置了多个ServeNodes和ChainNodes节点?
是的。多个ServeNodes相当于多个入口,共用一个转发链(ChainNodes)。
- relay protocal 实现的是 udp over tcp 吗?
relay是协议,与具体的传输类型无关,可以是over TCP (tls, ws等),也可以是over UDP(kcp, quic)。
bypass支持先解析后过滤ip吗? 比如 gost -L :8080 -F 192.168.1.1:8081?bypass=chnroutes.ip 这时如果用ip访问,则会跳过下级代理直接访问,但是如果用域名访问,即使域名解析出来在 chnroutes.ip 的范围内,仍然会通过下级代理访问。 甚至下游是socks5协议也是一样。
暂不支持解析后过滤。
gost -L http+ws://11111:22222@:80
请问这种方式,墙可以看到传输的内容吗?
- gost 内置的 TLS 证书是每次随机生成的还是固定的?若是固定的,是不是相当于所有人共用一个私钥,非常不安全,需要注明一下。
- gost 的 ws 作为一种传输协议能否像 v2ray 一样添加host混淆(即使用不同于 server ip 的域名)?或者当前有没有类似的方案实现?
可以配合自定义域名解析,然后ws地址填上域名就可以,我目前亲测是可行的。
除了可以自定义DNS服务用来解析域名外,还可以手动指定域名-IP映射关系,类似于Linux下的/etc/hosts文件功能。
gost -L=:8080?hosts=hosts.txt
配置文件的格式:
# options
reload 10s
# IP_address canonical_hostname [aliases...]
127.0.0.1 localhost
192.168.1.10 foo.mydomain.org foo
192.168.1.13 bar.mydomain.org bar baz
- gost 内置的 TLS 证书是每次随机生成的还是固定的?若是固定的,是不是相当于所有人共用一个私钥,非常不安全,需要注明一下。
- gost 的 ws 作为一种传输协议能否像 v2ray 一样添加host混淆(即使用不同于 server ip 的域名)?或者当前有没有类似的方案实现?
可以配合自定义域名解析,然后ws地址填上域名就可以,我目前亲测是可行的。
除了可以自定义DNS服务用来解析域名外,还可以手动指定域名-IP映射关系,类似于Linux下的/etc/hosts文件功能。
gost -L=:8080?hosts=hosts.txt
配置文件的格式:
# options reload 10s # IP_address canonical_hostname [aliases...] 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar baz
谢谢回复,之前作者已经回答我了。不过您的这个回答似乎与我的问题完全无关,可能是我没有理解
gost -L http+ws://11111:22222@:80
请问这种方式,墙可以看到传输的内容吗?
可以
- gost 内置的 TLS 证书是每次随机生成的还是固定的?若是固定的,是不是相当于所有人共用一个私钥,非常不安全,需要注明一下。
- gost 的 ws 作为一种传输协议能否像 v2ray 一样添加host混淆(即使用不同于 server ip 的域名)?或者当前有没有类似的方案实现?
可以配合自定义域名解析,然后ws地址填上域名就可以,我目前亲测是可行的。 除了可以自定义DNS服务用来解析域名外,还可以手动指定域名-IP映射关系,类似于Linux下的/etc/hosts文件功能。
gost -L=:8080?hosts=hosts.txt
配置文件的格式:
# options reload 10s # IP_address canonical_hostname [aliases...] 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar baz
谢谢回复,之前作者已经回答我了。不过您的这个回答似乎与我的问题完全无关,可能是我没有理解
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com
或者
gost -L :1080 -F ws://domain:port?host=yahoo.com
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com 或者 gost -L :1080 -F ws://domain:port?host=yahoo.com
这个host参数应该是在SNI协议里面用的吧?ws作为一种传输类型应该没有这个功能。
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com 或者 gost -L :1080 -F ws://domain:port?host=yahoo.com
这个host参数应该是在SNI协议里面用的吧?ws作为一种传输类型应该没有这个功能。
你试试就知道了
我最近就有这种需求。ws本身建立连接的时候就会有类似http的请求头,所以也有相应的Host字段, 混淆也是一个道理。
虽然作者文档中没说websocket可以这么手动指定host,但是我自己试验确实是可以的。 我服务器上用nginx监听了一个域名,配置好websocket。然后用这种方法指定host是可以成功连接的。
服务端是caddy forwardproxy的https代理(带tls证书)
客户端是gost -L=:1080 -F=https://user:password@服务器域名:443
请问这种方式,墙可以看到传输的内容吗?
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com 或者 gost -L :1080 -F ws://domain:port?host=yahoo.com
这个host参数应该是在SNI协议里面用的吧?ws作为一种传输类型应该没有这个功能。
你试试就知道了
我最近就有这种需求。ws本身建立连接的时候就会有类似http的请求头,所以也有相应的Host字段, 混淆也是一个道理。
虽然作者文档中没说websocket可以这么手动指定host,但是我自己试验确实是可以的。 我服务器上用nginx监听了一个域名,配置好websocket。然后用这种方法指定host是可以成功连接的。
谢谢解答,你是用nginx反代的websocket吗?如果成功反代的话,那么这个用法应该是正确的, 不过也有可能是nginx反代的时候只验证path没有验证host导致可以凑巧成功。
大佬 @ginuerzh 能解答一下到底ws有没有实现这个功能吗?
转发ws隧道似乎可以这样实现,
gost -L=tcp://:1111 -F=forward+ws://2.2.2.2:2222?path=/path
这种用法似乎不符合标准用法,因为此时 tcp://:1111
这种格式并不符合TCP本地端口转发的scheme(TCP本地端口转发的scheme后面应该接远程地址,如tcp://:1111/:3333
),而tcp好像也是不能单独作为一种传输类型使用的吧?
但该用法似乎可以正常工作,想问下该用法是正确的吗?如果不正确,正确的等价用法是什么呢?
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com 或者 gost -L :1080 -F ws://domain:port?host=yahoo.com
这个host参数应该是在SNI协议里面用的吧?ws作为一种传输类型应该没有这个功能。
你试试就知道了 我最近就有这种需求。ws本身建立连接的时候就会有类似http的请求头,所以也有相应的Host字段, 混淆也是一个道理。 虽然作者文档中没说websocket可以这么手动指定host,但是我自己试验确实是可以的。 我服务器上用nginx监听了一个域名,配置好websocket。然后用这种方法指定host是可以成功连接的。
谢谢解答,你是用nginx反代的websocket吗?如果成功反代的话,那么这个用法应该是正确的, 不过也有可能是nginx反代的时候只验证path没有验证host导致可以凑巧成功。
大佬 @ginuerzh 能解答一下到底ws有没有实现这个功能吗?
当然验证host了,我怎么会犯这种错误。
我的nginx在80绑定了一堆域名,纯IP访问设置的404。
有没有实现,你自己试验一下不就知道了?
或许你是指这个?
gost -L :1080 -F ws://ip:port?host=yahoo.com 或者 gost -L :1080 -F ws://domain:port?host=yahoo.com
这个host参数应该是在SNI协议里面用的吧?ws作为一种传输类型应该没有这个功能。
你试试就知道了 我最近就有这种需求。ws本身建立连接的时候就会有类似http的请求头,所以也有相应的Host字段, 混淆也是一个道理。 虽然作者文档中没说websocket可以这么手动指定host,但是我自己试验确实是可以的。 我服务器上用nginx监听了一个域名,配置好websocket。然后用这种方法指定host是可以成功连接的。
谢谢解答,你是用nginx反代的websocket吗?如果成功反代的话,那么这个用法应该是正确的, 不过也有可能是nginx反代的时候只验证path没有验证host导致可以凑巧成功。 大佬 @ginuerzh 能解答一下到底ws有没有实现这个功能吗?
当然验证host了,我怎么会犯这种错误。
我的nginx在80绑定了一堆域名,纯IP访问设置的404。
有没有实现,你自己试验一下不就知道了?
Perfect 多谢大佬
?ip=ip.txt 支持 绝对路径吗,放绝对路径文件好像无效
希望可以改进链路检测 比如通过链路要正常打开某个特定网页才判定为“正常”
QQ、微信、浏览器都可以使用IE代理配置,请问GOST如何让IE代理配置(主要wpad获取内容不知道)作为一级代理进行转发?
it's possible with gost to redirect all internet traffic via tun/tap a-la tun2socks?
tun2socks-windows-4.0-amd64.exe -tunAddr 10.0.0.2 -tunGw 10.0.0.1 -proxyType socks -proxyServer 192.168.101.1:1086 -dnsServer 8.8.8.8,8.8.4.4
请问 用gost反代加速国外网站
在服务器A上使用
gost -L tcp://:443/B_ip:443
直接输入https://A_ip可以访问,但是使用域名解析后访问就会出现 Connection_aborted 这个怎么搞
请问这个命令:
gost -L sni://:443?whitelist=tcp:*.baidu.com,*.qq.com:443
怎么写成json呢?
我写的:
{
"Debug": true,
"Retries": 0,
"ServeNodes": [
"sni://:443"
],
"whitelist": [
"*.baidu.com",
"*.qq.com"
]
}
不太清楚whitelist的TCP和443端口怎么加进去
请问这个命令:
gost -L sni://:443?whitelist=tcp:*.baidu.com,*.qq.com:443
怎么写成json呢? 我写的:{ "Debug": true, "Retries": 0, "ServeNodes": [ "sni://:443" ], "whitelist": [ "*.baidu.com", "*.qq.com" ] }
不太清楚whitelist的TCP和443端口怎么加进去
你的-L 没写错的话,应该是这样的
{ "Debug": true, "Retries": 0, "ServeNodes": [ "sni://:443?whitelist=tcp:*.baidu.com,*.qq.com:443" ], "ChainNodes": [ ] }
您这种写法gost可以成功sni代理,其实我之前
{
"Debug": true,
"Retries": 0,
"ServeNodes": [
"sni://:443"
],
"whitelist": [
"*.baidu.com",
"*.qq.com"
]
}
的白名单也没生效。 单独执行
gost -L sni://:443?whitelist=tcp:*.baidu.com,*.qq.com:443
是有效的 请问有没有比较简单添加白名单的写法?谢谢
这里有最新的gost二进制文件:https://github.com/proxy6-dev/Auto-Build-Gost-Bin
请问,在负载均衡中:
gost -L=:8080 -F='http://localhost:8080?ip=192.168.1.1,192.168.1.2:8081,192.168.1.3:8082&strategy=round&max_fails=1&fail_timeout=30s' -F=socks5://localhost:1080?ip=172.20.1.1:1080,172.20.1.2:1081,172.20.1.3:1082
这条示例命令, -F='http://localhost:8080?ip=... 中的 localhost:8080 是做什么用途的呢?
我的理解有一个用途是,后面 ip= 中的域名或者IP未指定端口的情况下会默认用8080,但localhost不知其作用。
还有个疑惑就是两个 -F 的情况下,是默认就变成了从第一个F到第二个F的代理吗? 普通情况下使用两个F好像没有效果
请问 gost 支持范围端口转发吗, 目前看到的示例都是指定某个端口到某个端口, 能否实现 A-B 到 C-D 这样的转发呢
怎么关闭控制台的日志输出?
有哪位大佬知道在json
文件中如何配置"探测防御"的参数吗?
https://v2.gost.run/probe_resist/
刚刚 windows 11自带的defender现在把windows-386和windows-amd64的程序都判定为 “This program is used to create viruses, worms or other malware.”,我刚下载了最新版的依然会触发风险隔离
gost -L red://:12345 -F=mws://www.baidu.com:80?ip=122.223.22.11
iptables -t nat -A OUTPUT -p tcp --match multiport ! --dports 12345,80 -j DNAT --to-destination 127.0.0.1:12345
除了80,12345 端口其他测试都没问题, 但是80端口我日常需要使用,远程连接也需要, 该怎么对特定ip:80进行例外? 而不是对全部80例外?
这个有答案了么
请教一下 转发端口中 rtcp和tcp 的区别, 貌似他们俩功能是一致的?
请教一下 转发端口中 rtcp和tcp 的区别, 貌似他们俩功能是一致的?
see https://github.com/woodlyer/gostExample to know what's rtcp.
请教ws的header参数的写法,例如 header=Host: 123.com 或者header={'Host':123.com} 都不起作用
此处为FAQs汇总帖,可以提出你的疑问,或给出见解,后面会统一放到WIKI中。