Loading

Ubuntu虚拟机/wsl2利用proxychains实现代理

proxychains is a UNIX program, that hooks network-related libc functions in dynamically linked programs via a preloaded DLL and redirects the connections through SOCKS4a/5 or HTTP proxies.

VMware虚拟机如何安装/配置proxychains

条件

  • 物理机能够科学shang网(我使用的是clash)
  • 设置代理软件,使其允许来自局域网的连接(clash -> General -> Allow Lan)

安装proxychains

# 如果没有指明版本则默认安装proxychains3
sudo apt install proxychains

修改配置文件

默认的配置文件为/etc/proxychains.conf

proxychains有三种代理模式,默认为strict_chian模式

  • dynamic_chain - 依次经过ProxyList中定义的所有节点,死节点会被忽略,且至少有一个活节点才能工作
  • strict_chain - 依次经过ProxyList中定义的所有节点,所有节点都必须是活节点
  • random_chain - 从ProxyList随机选择一个节点或多个节点(数量由chain_len定义)

将代理协议、物理机ip、clash的端口写入ProxyList

image.png

使用proxychains

# 以curl为例
proxychains curl google.com

解决libproxychains.so.3无法预加载的问题

  1. 找到libproxychains.so.3的路径

    find /usr/ -name libproxychains.so.3 -print

  2. 将该路径写入/usr/bin/proxychains文件

    export LD_PRELOAD=/usr/lib/libproxychains.so.3

wsl2配置proxychains

wsl2通过虚拟网卡与windows主机通信,而且每次重启windows之后虚拟网卡的ip会发生改变。每次重启之后都需要重新配置proxychains,比较麻烦。这篇博客提供了一种自动配置proxychains的方法。

动态获取windows的ip

ip route命令可以查看linux系统的路由表。因为wsl2的流量是经过windows的,所以默认路由所指的ip即为windows的ip。

提取windows的ip

ip route | grep default | awk '{print $3}'

安装proxychains4

普通用户没有写默认配置文件的权限(只有root可写),所以需要另辟蹊径。proxychains4可以指定任意文件作为配置文件,我们可以创建一个普通用户权限的文件作为配置文件,然后再利用脚本自动更新该配置文件。

安装proxychains4

sudo apt install proxychains4

生成用户配置文件

将默认配置文件复制到用户的根目录

sudo /etc/proxychains4.conf ~/.proxychains.conf
sudo chown username ~/.proxychains.conf

修改.proxychains.conf文件

按照前面介绍的方法,配置好.proxychains.conf

配置~/.bashrc文件

在~/.bashrc末尾添加如下代码

# 获取windows的ip
export win_ip=`ip route | grep default | awk '{print $3}'`
export clash_port='23785'
# 删除包含clash_port的行
sed -i '/'${clash_port}'/d' ~/.proxychains.conf
# 重新写入
sed -i '$a socks5 '${win_ip}' '${clash_port} ~/.proxychains.conf
# 设置proxychains的别名,并使用指定配置文件
alias pc='proxychains -q -f ~/.proxychains.conf'

之后重启终端即可,或者使用命令source ~/.bashrc使配置立即生效

测试

pc curl www.google.com

posted @ 2021-08-12 13:59  雨下yi整晚  阅读(2206)  评论(0)    收藏  举报