zw963 / asuswrt-merlin-transparent-proxy

transparent proxy base on ss, v2ray, xray, ipset, iptables, chinadns on asuswrt merlin or side router.
MIT License
380 stars 80 forks source link

咨询:编辑 shadowsocks.json可否使用域名,而不是ip地址。 #15

Closed gitx6 closed 7 years ago

gitx6 commented 7 years ago

"server":"123.123.123.123", // 这是你国外服务器地址(服务器上应该运行一个 shadowsocks server)

这里是否可以用域名替代IP地址。比如:"fq.vps.com"替代"123.123.123.123"

zw963 commented 7 years ago

当然可以.

gitx6 commented 7 years ago

在脚本ss+dnsmasq第66行到71行,需要用服务器ip地址替换iptables.sh中的对应值。如果我在 shadowsocks.json中服务器地址用的域名,在手工部署的时候,iptables.sh继续使用域名可以么?

谢谢解答。

66 # 取得 shadowsocks.json 中的服务器 ip 地址以及 ss-redir 端口, 并自动替换 iptables.sh 中对应的值。 67 ss_server_ip=$(cat /opt/etc/shadowsocks.json |grep 'server"' |cut -d':' -f2|cut -d'"' -f2) 68 ss_local_port=$(cat /opt/etc/shadowsocks.json |grep 'local_port"' |grep -o '[0-9]*') 69 70 replace_string 'SS_SERVER_IP' $ss_server_ip /opt/etc/iptables.sh 71 replace_string 'SS_LOCAL_PORT' $ss_local_port /opt/etc/iptables.sh

zw963 commented 7 years ago

在脚本ss+dnsmasq第66行到71行,需要用服务器ip地址替换iptables.sh中的对应值。如果我在 shadowsocks.json中服务器地址用的域名,在手工部署的时候,iptables.sh继续使用域名可以么?

你应该把 SS_SERVER_IP 替换为你的域名才可以啊, 还有端口

gitx6 commented 7 years ago

使用域名在shadowsocks.json里面会无法解析。必须使用ip地址才能FQ。

admin@RT-AC68U-DA00:/tmp/home/root# ss-redir -c /opt/etc/shadowsocks.json 2015-08-01 00:02:28 INFO: initializing ciphers... chacha20 2015-08-01 00:02:50 ERROR: failed to resolve server name, wait 2 seconds

zw963 commented 7 years ago

好吧, 我也是糊涂了, iptables.sh 里面是 iptable 规则, 当然必须是 ip.

你需要自己手动修改这个文件里的域名为 ip, 但是, shadowsocks.json 中 绝对可以使用域名的.

gitx6 commented 7 years ago

我刚才在路由器FQ状态下检查了shadowsocks.json和iptables.sh。结果恰恰相反。

shadowsocks.json 里面必须是IP地址。如果改成域名然后重启路由器,会翻不出去。手工执行ss-redir -c /opt/etc/shadowsocks.json。出错信息为: 2015-08-01 00:02:28 INFO: initializing ciphers... chacha20 2015-08-01 00:02:50 ERROR: failed to resolve server name, wait 2 seconds 日期也是显示2015-08-01,说明路由器到外网不通,NTP服务没有同步到当前时间。 shadowsocks.json 改成ip地址,重启路由器。FQ成功,NTP也改了路由器的时间为当前时间。

iptables.sfh在上述的两个测试中一直保持为域名方式

如果有很多服务器,并且所有目标服务器都是同样的端口, 用法如下

# $iptables -t nat -A SHADOWSOCKS --dport 22334 -j RETURN
$iptables -t nat -A SHADOWSOCKS -d fq.sakura.com -j RETURN

因为我的SS服务商提供的服务器是域名,对应的IP地址会不定期的更新。需要使用域名方式在shadowsocks.json

zw963 commented 7 years ago

@wanxin6, 好吧, 建议你直接购买个 VPS 自己来用多好? 一个月也就几十块, 干嘛用别人的服务, 还不安全.

我已经提供了一键部署 ss-server 的脚本, 支持 Ubuntu, Centos, OpenSUSE, 你看到了吧?

gitx6 commented 7 years ago

好处是这家服务商有多条线路可选。香港,日本,台湾,美国等。 不好的地方就是上面提及到的用域名比用IP地址方便,他们会在后台做些负载均衡等。

gitx6 commented 7 years ago

我想问题应该是这样产生的。 shadowsocks.json指定了域名,但是这个域名对应的IP地址不在iptables.sh里面。当ss-redir -c /opt/etc/shadowsocks.json 服务启动时,域名无法解析,就出错不能FQ了。

如果用ss+dnsmasq+chinadns的方案是不是可以解决这个矛盾的问题?

gitx6 commented 7 years ago

或者有什么其他的方案,可以指定以某个后缀的域名直连,这样ss-redir -c /opt/etc/shadowsocks.json 服务启动时可以取得正确的ip地址?

zw963 commented 7 years ago

shadowsocks.json指定了域名,但是这个域名对应的IP地址不在iptables.sh里面。

你可能需要手动的把你服务商提供的那个域名, 作为国内域名白名单, 加入 /opt/etc/dnsmasq.d/accelerated-domains.china.conf

格式如下: (如果你的域名是 fq.sakura.com)

server=/sakura.com/#

试试看.

gitx6 commented 7 years ago

没有这个文件 /opt/etc/dnsmasq.d/accelerated-domains.china.conf。在这个目录下只有accelerated-domains-ipset.china.conf。 格式是 ipset=/0-6.com/FREEWEB ipset=/0-gold.net/FREEWEB

zw963 commented 7 years ago

我说错了, 就是这个文件, 加一行:

ipset=/sakura.com/FREEWEB
gitx6 commented 7 years ago

就是当成国内流量直接放行。

但是这样FQ的性能很差。youtube画面质量惨不忍睹。电脑直接代理FQ反而随便1080P。

zw963 commented 7 years ago

就是当成国内流量直接放行。

这是必须的, 只有直连你的 VPS, 速度才会最快.

你需要首先直连到 FQ服务器, 然后通过 FQ服务器, 再连接 Youtube.

因此, 你的 VPS (FQ服务器) 域名必须直接放行.

我想不到什么原因会让 Youtube 画质惨不忍睹, 貌似还是你有些地方配置的问题?

gitx6 commented 7 years ago

我通过ip138查到VPS的地址,改shadowsocks.json成IP方式,路由器不用重启,速度嗖嗖的就上去了。

使用域名方式,还有一个问题是国内的一些网站速度变慢了。微信聊天和朋友圈的图片加载很慢。有些app还连不上网。

zw963 commented 7 years ago

那应该是 sakura.com 这个域名解析慢造成的问题, 你还是定期更换 ip 地址吧.

或者, 就像我建议一样, 搞个 VPS, 香港的就行, 一劳永逸, 根本不用多线路, 大陆访问 香港的 应该是最好的线路了.

gitx6 commented 7 years ago

嗯,只有这样了。

目前你的解决方案是网上最透明,部署最方便的。其他刷固件的方案,就怕变成别人的肉鸡。

gitx6 commented 7 years ago

不知道是不是有启动顺序这种说法。

由于ss-redir启动在前。ss-redir启动不能解析出ip地址就会一直等待,造成后续的命令无法执行,也就无法FQ。

zw963 commented 7 years ago

在accelerated-domains-ipset.china.conf增加ipset=/服务器域名/FREEWEB方式是无效

不知道你为什么无效, 这个配置是在 dnsmasq 里面, ss-redir 碰到域名, 也会走 dnsmasq, 然后, 因为有规则, 会把这个域名交给国内的域名解析服务器来处理. 不过, 也可能 ss-redir 本身就是在做域名委托的, 所以无效, 也没细研究.

不知道是不是有启动顺序这种说法。

有的, init.d/ 下面, 启动脚本都有个数字, 数字小的在前面启动.

gitx6 commented 7 years ago

更新一下:

无论对于ss+dnsmasq+chinadns或者ss+dnsmasq方式,如果使用域名,需要在accelerated-domains-ipset.china.conf增加如下格式: (如果你的域名是 fq.sakura.com)。

ipset=/fq.sakura.com/FREEWEB

同时更改iptables.sh (SERVER_PORT)是vps的端口

$iptables -t nat -A SHADOWSOCKS --dport SERVER_PORT -j RETURN

$iptables -t nat -A SHADOWSOCKS -d fq.sakura.com -j RETURN

zw963 commented 7 years ago

酷,看起来是这样的,稍后有空把这个过程自动化,如果是域名,就这样做。

2017年6月15日 18:51,"wangxin6" notifications@github.com写道:

更新一下:

无论对于ss+dnsmasq+chinadns或者ss+dnsmasq方式,如果使用域名,需要在accelerated-domains-ipset.china.conf增加如下格式: (如果你的域名是 fq.sakura.com)。

ipset=/fq.sakura.com/FREEWEB

同时更改iptables.sh (SERVER_PORT)是vps的端口 $iptables -t nat -A SHADOWSOCKS --dport SERVER_PORT -j RETURN

$iptables -t nat -A SHADOWSOCKS -d fq.sakura.com -j RETURN

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/zw963/asuswrt-merlin-transparent-proxy/issues/15#issuecomment-308697538, or mute the thread https://github.com/notifications/unsubscribe-auth/AAhhBm5tw7mHgYDe9u_j1H4HPTJS6rTJks5sEQzLgaJpZM4NkvEj .

gitx6 commented 7 years ago

在SS+dnsmasq模式中使用域名方式,还是有点问题。重启以后,还是不能解析地址。 ss+dnsmasq+chinadns使用域名方式多次重启,完全没问题。

gitx6 commented 7 years ago

对使用域名的方式

在WebUI-Advanced Settings-WAN-WAN DNS Setting-Connect to DNS Server automatically 设置为No。 然后手动指定DNS server可以解决FQ服务器域名无法解析的问题

luoyanghero commented 4 years ago

"server":"123.123.123.123", // 这是你国外服务器地址(服务器上应该运行一个 shadowsocks server)

这里是否可以用域名替代IP地址。比如:"fq.vps.com"替代"123.123.123.123"

讲域名替换成IP,有啥好处?

zw963 commented 4 years ago

如果你不停地换 VPS, 每次更换后, 将自己的域名指向新的 VPS 即可, SS 的 config 中不用修改.

lcchaolin commented 1 year ago

你好,大神, 能教下, 怎么搭建shadowsocks使用域名,而不是ip地址,不要用插件,Ws, 这些, 纯原版,只不过是使用域名,而不是ip地址

zw963 commented 1 year ago

好久不用了,直接更换 ip 为域名不可以吗?

lcchaolin commented 1 year ago

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

zw963 commented 1 year ago

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

你把 server 字段从 ip 换成域名,不工作吗?

注意,所有到你的 server 的 UDP 请求,必须直连。

iptables -t mangle -A V2RAY_UDP -d $v2ray_server_ip -j RETURN

qingyise20 commented 10 months ago

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

你好,请问你解决这个问题了吗

lcchaolin commented 10 months ago

没有解决, 行不通;

善良de巴斯光年 @.***> 于2023年9月27日周三 08:07写道:

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

好久不用了,直接更换 ip 为域名不可以吗?

怎样直接更换, 直接server字段的值更改为域名吗, 我域名也解析到我的IP。 但是还是不可以, 不知道哪里没做

你好,请问你解决这个问题了吗

— Reply to this email directly, view it on GitHub https://github.com/zw963/asuswrt-merlin-transparent-proxy/issues/15#issuecomment-1736464093, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANHWHEEQCO357M37C2OPDGDX4NU4RANCNFSM4DMS6ERQ . You are receiving this because you commented.Message ID: @.***>