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
使用proxychains#
# 以curl为例
proxychains curl google.com
解决libproxychains.so.3无法预加载的问题#
-
找到libproxychains.so.3的路径
find /usr/ -name libproxychains.so.3 -print
-
将该路径写入/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
作者:yuxiayizhengwan
出处:https://www.cnblogs.com/yuxiayizhengwan/p/15132401.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库