curl socks5h 模拟翻墙客户端 fakeip 行为

前言

群友反馈在Deiban13下不能设置IPv4优先
聊天截图:Debian13下不能设置IPv4优先且不加载gai.conf

通过进一步的交流, 群友的意思是 sing-box 向外访问, 无法通过 gai.conf 来设置是 IPv4优先 还是 IPv6优先
群友用的是fakeip的模式, 翻墙客户端发给梯子的数据包中只有域名, 没有IP.
聊天截图:使用fakeip时数据包中只有域名没有IP

需求

如果自己搭全套测试环境挺麻烦的. 而且自己到VPS之间的网络如果不稳定的话, 影响测试效率.
那么, 我们怎么在VPS上模拟这个fakeip行为呢?

问GPT

在"翻墙"领域, 有一种客户端 模式叫 fakeip 
在这种模式下, 最终从客户端 发往服务端的数据包里面只有域名, 没有IP. 
我需要在linux命令行模拟 这样的行为, 我可以用 curl 工具做到吗?
答案是使用 socks5h
curl -x socks5h://proxy.example.com:1080 https://www.example.com/

实践 sing-box

搭建一个简单的sing-box服务端
官方安装脚本 
curl -fsSL https://sing-box.app/install.sh | sh
配置文件
nano /etc/sing-box/config.json
{
  "log": {
    "level": "debug",
    "output": "box.log",
    "timestamp": true
  },
  "inbounds": [
    {
      "type": "socks",
      "tag": "socks-in",
      "listen": "127.0.0.1",
      "listen_port": 1080
    }
  ],
  "outbounds": [
    {
      "type": "direct"
    }
  ]
}
命令行测试 socks5h
curl -x socks5h://127.0.0.1:1080 api.myip.la
查看日志
 cat /var/lib/sing-box/box.log
日志结果
可以看到 inbound 收到的请求里面只有域名, 没有IP
sing-box进行了DNS解析
sing-box日志:socks入站连接api.myip.la并完成DNS解析

对比, 如果使用 socks5
curl -x socks5://127.0.0.1:1080 api.myip.la

日志结果
inbound 收到的是IP
说明 curl 自己先DNS解析了域名 api.myip.la 再向socks代理发出只有IP的数据包

终端日志:socks入站连接149.28.31.24的80端口


实践 xray

搭建一个简单的xray服务端
官方安装脚本 
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
配置文件
nano /usr/local/etc/xray/config.json
{
  "log": {
    "access": "/var/log/xray/access.log",
    "error": "/var/log/xray/error.log",
    "loglevel": "debug"
  },
  "inbounds": [
    {
      "listen":"127.0.0.1",
      "port":1080,
      "protocol":"socks"
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    }
  ]
}
命令行测试 socks5h
curl -x socks5h://127.0.0.1:1080 api.myip.la
查看日志
cat /var/log/xray/error.log
日志结果
可以看到 inbound 收到的请求里面只有域名, 没有IP
终端日志:proxy/socks向api.myip.la发起TCP连接


对比, 如果使用 socks5
curl -x socks5://127.0.0.1:1080 api.myip.la
日志结果
inbound 收到的是IP
说明 curl 自己先DNS解析了域名 api.myip.la 再向socks代理发出只有IP的数据包
终端日志:代理向149.28.31.24:80发起TCP连接并建立

结论

curl socks5h 可以模拟翻墙客户端 fakeip 行为

curl -x socks5h://proxy.example.com:1080 https://www.example.com/

 

========

看了又看

《sing-box的IPv4优先 IPv6优先行为受 gai.conf 控制?》

《Linux 命令行 curl 用POST方法 调用pastebin系统 API 添加文本文件》

《v2rayN-3.29-VLESS 生成配置文件 Xray 多 Socks 代理 一对一 节点》


评论