其他
2024-06-095 min
局域网Linux使用代理
可以在PC上使用Clash代理软件并允许局域网连接后,让局域网内的Linux系统使用代理,详细指南: 1. **安装和配置Clash**: - 确保在PC上安装了Clash代理软件。 - 打开Clash,并配置代理服务器和端口。注意端口号,…

可以在PC上使用Clash代理软件并允许局域网连接后,让局域网内的Linux系统使用代理,详细指南:
PC端配置
- 安装和配置Clash:
- 确保在PC上安装了Clash代理软件。
- 打开Clash,并配置代理服务器和端口。注意端口号,通常默认为
7890,但也可以自定义。 - 在Clash的设置中,找到并开启“允许来自局域网的连接”选项。这允许局域网内的其他设备连接到你的代理服务。
- 查找PC的IP地址:
- 在macOS上,通过“系统偏好设置” -> “网络” -> 选择当前使用的网络接口(如Wi-Fi) -> 点击“高级” -> “TCP/IP”标签页,找到你的IPv4地址。假设这个地址是
192.168.1.100。 - 在Windows上通过网络属性或使用命令ipconfig查看
- 在macOS上,通过“系统偏好设置” -> “网络” -> 选择当前使用的网络接口(如Wi-Fi) -> 点击“高级” -> “TCP/IP”标签页,找到你的IPv4地址。假设这个地址是
Linux端配置
-
安装Clash(可选):
- 虽然Linux上不需要安装Clash,但如果你希望在Linux上也使用Clash的图形界面或其他功能,你可以从官方网站或GitHub页面下载并安装适用于Linux的Clash版本。不过,对于代理设置,我们主要使用环境变量。
-
设置环境变量:
-
打开Linux的终端。
-
设置HTTP、HTTPS和SOCKS代理的环境变量。根据你的macOS IP地址和Clash代理端口(假设为
7890),执行以下命令:
-
sh
export http_proxy=http://192.168.1.100:7890
export https_proxy=http://192.168.1.100:7890
export all_proxy=socks5://192.168.1.100:7890- 验证代理设置:
如果你希望这些设置在每次打开新的终端会话时都自动生效,可以将上述命令添加到你的shell配置文件(如
~/.bashrc、~/.bash_profile、~/.zshrc等)中,并执行source ~/.bashrc(或对应的配置文件)使更改立即生效。- 在Linux终端中,使用
curl命令或浏览器尝试访问一个网站来验证代理是否设置成功。 - 或者,可以在浏览器中设置代理为
192.168.1.100:7890,并尝试访问网页。
- 在Linux终端中,使用
sh
curl -x socks5h://192.168.1.100:7890 http://www.example.com- 注意事项:
- 确保PC和Linux设备在同一局域网内,并且PC上的防火墙或路由器设置没有阻止来自Linux的连接。
- 如果PC的IP地址是动态的(可能会改变),可能需要定期更新Linux上的环境变量。
- 如果代理服务器需要用户名和密码进行身份验证,你可能需要在环境变量中包含这些信息,但请注意这样做可能会增加安全风险。
使用脚本
创建一个简单的bash脚本以便在需要时轻松启用或禁用代理。
首先,创建一个名为toggle_proxy.sh的脚本文件,并在其中添加以下内容:
sh
#!/bin/bash
# 假设PC IP地址是192.168.1.100,Clash代理端口是7890
PROXY_SERVER="192.168.1.100:7890"
# 检查是否设置了环境变量 PROXY_ENABLED
if [ -z "$PROXY_ENABLED" ]; then
# 如果没有设置,则默认禁用代理
PROXY_ENABLED=false
fi
# 切换代理状态
if [ "$PROXY_ENABLED" == true ]; then
# 如果代理已启用,则禁用它
unset http_proxy
unset https_proxy
unset all_proxy PROXY_ENABLED=false
echo "Proxy disabled."
else
# 如果代理未启用,则启用它
export http_proxy="http://$PROXY_SERVER"
export https_proxy="https://$PROXY_SERVER"
export all_proxy="socks5://$PROXY_SERVER"
PROXY_ENABLED=true echo "Proxy enabled."
fi
# 将PROXY_ENABLED保存到文件中,以便下次脚本运行时读取
echo "PROXY_ENABLED=$PROXY_ENABLED" > ~/.proxy_status
# 如果需要,可以将代理设置添加到bashrc或zshrc文件中
# 注意:这将在每次打开新终端时都启用代理,可能不是你想要的
# echo "export http_proxy=\"http://$PROXY_SERVER\"" >> ~/.bashrc
# echo "export https_proxy=\"https://$PROXY_SERVER\"" >> ~/.bashrc
# echo "export all_proxy=\"socks5://$PROXY_SERVER\"" >> ~/.bashrc
# source ~/.bashrc给这个脚本执行权限:
sh
chmod +x toggle_proxy.sh通过运行./toggle_proxy.sh脚本来切换代理状态。每次脚本运行时,它都会检查~/.proxy_status文件来确定当前的代理状态,并切换它。
如果想要在新终端会话中保留代理设置,可以取消上面脚本中注释掉的行(将#删除),但这意味着每次打开新终端时都会自动启用代理。
一个更好的方法是在需要代理时运行脚本以启用它,然后在不需要时再次运行脚本来禁用它。如果经常需要这样做,可以将脚本添加到你的shell别名中,以便更容易地调用它。例如,在~/.bashrc或~/.zshrc中添加以下行:
sh
alias toggleproxy='source /scripts/toggle_proxy.sh'确保将/scripts/替换为toggle_proxy.sh脚本的实际路径。然后,重新加载shell配置文件(如source ~/.bashrc或source ~/.zshrc),这样就可以通过运行toggleproxy命令来切换代理状态了。
科学上网linuxclash