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

前言

群友反馈在Deiban13下不能设置IPv4优先

通过进一步的交流, 群友的意思是 sing-box 向外访问, 无法通过 gai.conf 来设置是 IPv4优先 还是 IPv6优先
群友用的是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解析

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

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



实践 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


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

结论

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

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

 

评论

The Hot3 in Last 7 Days

搭 Docker版 Sub-Store 带 http-meta 实现 集合订阅 测延迟 排序 筛选 生成新订阅 定时任务上传Gist

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks