zfl9 / ss-tproxy

ss/v2ray/xray/trojan/hysteria/naive/socks5 透明代理
GNU Affero General Public License v3.0
2.27k stars 433 forks source link

有关远程局域网 #268

Closed foreverlong closed 6 months ago

foreverlong commented 6 months ago

首先非常感谢您的工作! 我现在遇到了一个问题,我的ssr部署设备为路由器的padavan固件,环境为学校。 我通过在“学校”的路由器的ss_tproxy连接到“家”里的ss服务器。 “学校”路由器(客户端)的IP地址为192.168.123.X,“家”里(服务端)的IP地址为192.168.31.X。 我直接采用透明代理的方式无法访问到“家”里的内网IP,如192.168.31.1。 但是当我使用Proxifier中socks5连接“学校”路由器(192.168.123.1)时能够访问 “家”里的内网IP。(设置的是全局代理,并且已经将192.168.31.X网段加入走代理的名单) 同样包括直接用手机app或是直接使用ssr软件也能访问“家”里的内网IP。 我现在考虑的是ss-tproxy起到的作用是否为分流呢?现在想不明白是哪个地方出了问题。 期待您的回复!

zfl9 commented 6 months ago

ss-tproxy上是什么模式? mode=global?

foreverlong commented 6 months ago

ss-tproxy上是什么模式? mode=global?

对的。mode='global' # chnroute 模式 (白名单)

zfl9 commented 6 months ago

global模式会对 局域网ip段 放行,不走代理

看你描述,ss-tproxy是第三方固件带的?还是自己安装的?

如果是原版,可以修改ss-tproxy配置目录下的ignlist.ext,注释192.168.0.0/16这行

foreverlong commented 6 months ago

global模式会对 局域网ip段 放行,不走代理

看你描述,ss-tproxy是第三方固件带的?还是自己安装的?

是padavan固件自己带的,但是可以设置ss-tproxy的配置。 image image

zfl9 commented 6 months ago

到路由器上看看,有没有ignlist.ext,或者类似白名单文件

foreverlong commented 6 months ago

image 有的,但是两个都是空白文件

zfl9 commented 6 months ago

那你只能编辑一下ss-tproxy脚本,看看是不是内置到脚本里面了,搜索192.168关键字

foreverlong commented 6 months ago

那你只能编辑一下ss-tproxy脚本,看看是不是内置到脚本里面了,搜索192.168关键字

请问您是说这个嘛:

# ss-tproxy 配置文件
# https://github.com/zfl9/ss-tproxy
## mode
#mode='global'  # global 模式 (不分流)
#mode='chnlist' # 回国模式 (china走代理)
#mode='gfwlist' # gfwlist 模式 (黑名单)
mode='global' # chnroute 模式 (白名单)

## ipv4/6
ipv4='true' # true:启用ipv4透明代理; false:关闭ipv4透明代理
ipv6='false' # true:启用ipv6透明代理; false:关闭ipv6透明代理

## tproxy
tproxy='false' # true:TPROXY+TPROXY; false:REDIRECT+TPROXY

## tcponly
tcponly='false' # true:仅代理TCP流量; false:代理TCP和UDP流量

## selfonly
selfonly='false' # true:仅代理本机流量; false:代理本机及"内网"流量

## ss_tproxy 配置文件的配置参数覆盖 web 的配置参数
ext_dns_start_dnsproxy='' #app_112 0:自动开启第三方 DNS 程序(dnsproxy) ; 1:跳过自动开启第三方 DNS 程序但是继续把DNS绑定到 8053 端口的程序
ext_ss_dnsproxy_x=''      #DNS程序选择,0:dnsproxy ; 1:pdnsd ; 2:dnsmasq
ext_ss_pdnsd_all=''       # 0使用[本地DNS] + [GFW规则]查询DNS ; 1 使用 8053 端口查询全部 DNS
ext_ss_pdnsd_cn_all=''    #app_113 0:使用 8053 端口查询全部 DNS 时进行 China 域名加速 ; 1:不进行 China 域名加速
## iptables -t nat -I SSTP_OUTPUT -j RETURN
ext_output_return=''      #app_114 0:代理本机流量; 1:跳过代理本机流量
ext_output_udp_return=''  #ss_udp_enable 0:停用本机 UDP 转发; 1:启动本机 UDP 转发 (需服务器支持 UDP 代理才有效)
ext_ss_all_udp=''         #app_81 0:udp 分流模式跟随 tcp 设置; 1:全局 UDP 转发,不分流
## iptables -t nat -I SSTP_OUTPUT -m owner --uid-owner 777 -j RETURN
uid_owner='0' # 非 0 时进行用户ID匹配跳过代理本机流量
gid_owner='1321' # 非 0 时进行组ID匹配跳过代理本机流量

## proxy
proxy_all_svraddr='/opt/app/ss_tproxy/conf/proxy_all_svraddr.conf' # 服务器的地址或域名的配置文件,会自动处理分类IPv4、IPv6,允许填写多个服务器地址(文件里面每一行一个服务器地址)
proxy_svraddr4="/opt/app/ss_tproxy/conf/proxy_svraddr4.conf" # 服务器的 IPv4 地址或域名的配置文件,允许填写多个服务器地址(文件里面每一行一个服务器地址)
proxy_svraddr6="/opt/app/ss_tproxy/conf/proxy_svraddr6.conf" # 服务器的 IPv6 地址或域名的配置文件,允许填写多个服务器地址(文件里面每一行一个服务器地址)
proxy_svrport='1:65535' # 服务器的监听端口,可填多个端口,格式同 ipts_proxy_dst_port
proxy_tcpport='1090' # ss/ssr/v2ray 等本机进程的 TCP 监听端口,该端口支持透明代理
proxy_udpport='1090' # ss/ssr/v2ray 等本机进程的 UDP 监听端口,该端口支持透明代理
proxy_startcmd='date' # 用于启动本机代理进程的 shell 命令,该命令应该能立即执行完毕
proxy_stopcmd='date' # 用于关闭本机代理进程的 shell 命令,该命令应该能立即执行完毕

## dns
dns_direct='172.21.0.21' # 本地 IPv4 DNS,不能指定端口,也可以填组织、公司内部 DNS
dns_direct6='240C::6666' # 本地 IPv6 DNS,不能指定端口,也可以填组织、公司内部 DNS
dns_remote='8.8.8.8#53' # 远程 IPv4 DNS,必须指定端口,提示:访问远程 DNS 会走代理
dns_remote6='::1#8053' # 远程 IPv6 DNS,必须指定端口,提示:访问远程 DNS 会走代理
dns_bind_port='8053' # 本地 dnsproxy 服务器监听端口

## dnsmasq
dnsmasq_bind_port='53' # dnsmasq 服务器监听端口,见 README
dnsmasq_conf_dir='/tmp/ss_tproxy/dnsmasq.d' # `--conf-dir` 选项的参数,可以填多个,空格隔开
dnsmasq_conf_file='/opt/app/ss_tproxy/dnsmasq_conf_file.txt' # `--conf-file` 选项的参数,可以填多个,空格隔开
dnsmasq_conf_string='/opt/app/ss_tproxy/conf/dnsmasq_conf_string.conf' # 自定义配置的配置文件(文件里面每一行一个配置)

## dns2tcp
dns2tcp_bind_port='65454'               # dns2tcp 转发服务器监听端口,如有冲突请修改
dns2tcp_verbose='false'                 # 记录详细日志,除非进行调试,否则不建议启用
dns2tcp_logfile='/tmp/syslog.log'  # 日志文件,如果不想保存日志可以改为 /dev/null

## ipts
lan_ipv4_ipaddr='127.0.0.1' #
lan_ipv6_ipaddr='::1'
ipts_if_lo='lo'                 # 环回接口的名称,在标准发行版中,通常为 lo,如果不是请修改
ipts_rt_tab='233'               # iproute2 路由表名或表 ID,除非产生冲突,否则不建议改动该选项
ipts_rt_mark='0x2333'           # iproute2 策略路由的防火墙标记,除非产生冲突,否则不建议改动该选项
ipts_set_snat='false' # 设置 iptables 的 MASQUERADE 规则,布尔值,`true/false`,详见 README
ipts_set_snat6='false' # 设置 ip6tables 的 MASQUERADE 规则,布尔值,`true/false`,详见 README
ipts_reddns_onstop='false' # ss-tproxy stop 后,是否将其它主机发至本机的 DNS 重定向至直连 DNS,详见 README
ipts_reddns_onstart='false' # ss-tproxy start 后,是否将其它主机发至本机的 DNS 重定向至自定义 IPv4 地址
ipts_reddns_ip='192.168.123.1' # 自定义 DNS 重定向地址(只支持 IPv4 )
ipts_proxy_dst_port_tcp='1:65535' # tcp 黑名单 IP 的哪些端口走代理,多个用逗号隔开,冒号为端口范围(含边界),详见 README
ipts_proxy_dst_port_udp='1:65535' # udp 黑名单 IP 的哪些端口走代理,多个用逗号隔开,冒号为端口范围(含边界),详见 README
# LAN_AC_IP 内网LAN代理转发白名单设置
# 0 常规, 未在 file_lanlist_ext 设定的 内网IP 根据 mode 配置工作模式 走代理
# 1 全局, 未在 file_lanlist_ext 设定的 内网IP 使用 全局代理模式 走代理
# 2 绕过, 未在 file_lanlist_ext 设定的 内网IP 不使用 代理
LAN_AC_IP='0' # 默认值 0

## opts
opts_ss_netstat='auto'                  # auto/ss/netstat,用哪个端口检测工具,见 README
opts_ping_cmd_to_use='auto'             # auto/standalone/parameter,ping 相关,见 README
opts_hostname_resolver='auto'           # auto/doh/dig/getent/ping,用哪个解析工具,见 README
opts_overwrite_resolv='false' # true/false,定义如何修改 resolv.conf,见 README
opts_ip_for_check_net='' # 检测外网是否可访问的 IP,ping,留空表示跳过此检查

## file
file_gfwlist_txt='/opt/app/ss_tproxy/rule/gfwlist.txt' # gfwlist/chnlist 模式预置文件
file_gfwlist_ext='/opt/app/ss_tproxy/gfwlist.ext' # gfwlist/chnlist 模式扩展文件
file_ignlist_ext='/opt/app/ss_tproxy/ignlist.ext' # global/chnroute 模式扩展文件
file_lanlist_ext='/etc/storage/shadowsocks_ss_spec_lan.sh' # 内网(LAN)IP行为 模式扩展文件
file_wanlist_ext='/etc/storage/shadowsocks_ss_spec_wan.sh' # 外网(WAN)IP行为 模式扩展文件
file_chnroute_txt='/opt/app/ss_tproxy/rule/chnroute.txt' # chnroute 地址段文件(文件里面每一行一个IP)
file_chnroute6_txt='/opt/app/ss_tproxy/rule/chnroute6.txt' # chnroute 地址段文件(文件里面每一行一个IP)
file_chnroute_set='/opt/app/ss_tproxy/chnroute.set' # chnroute 地址段文件 (iptables)
file_chnroute6_set='/opt/app/ss_tproxy/chnroute6.set' # chnroute6 地址段文件 (ip6tables)
file_dnsserver_pid='/opt/app/ss_tproxy/.dnsserver.pid' # dns 服务器进程的 pid 文件 (shell)

## tmp
ss_tproxy_status='290ae11e76cb8a6e12c46f1b793bfe04' # 记录参数状态变化,不需要改动该选项
foreverlong commented 6 months ago

image 或许是这里?文件名就是“ss_tproxy”

zfl9 commented 6 months ago

你把其中的192.168.0.0/16改为当前路由器所在的局域网ip段。没看错的话,应该是改为192.168.123.0/24

然后重启下ss-tproxy,看是否生效(注意检查这个脚本内容会不会被自动还原啥的,路由器上我也不太清楚)

foreverlong commented 6 months ago

Owner

大佬!!!泪目!!!终于成功了!您真的太强了!感谢您!