返回博客
其他
2024-06-095 min

局域网Linux使用代理

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

局域网Linux使用代理

可以在PC上使用Clash代理软件并允许局域网连接后,让局域网内的Linux系统使用代理,详细指南:

PC端配置

  1. 安装和配置Clash
    • 确保在PC上安装了Clash代理软件。
    • 打开Clash,并配置代理服务器和端口。注意端口号,通常默认为7890,但也可以自定义。
    • 在Clash的设置中,找到并开启“允许来自局域网的连接”选项。这允许局域网内的其他设备连接到你的代理服务。
  2. 查找PC的IP地址
    • 在macOS上,通过“系统偏好设置” -> “网络” -> 选择当前使用的网络接口(如Wi-Fi) -> 点击“高级” -> “TCP/IP”标签页,找到你的IPv4地址。假设这个地址是192.168.1.100
    • 在Windows上通过网络属性或使用命令ipconfig查看

Linux端配置

  1. 安装Clash(可选)

    • 虽然Linux上不需要安装Clash,但如果你希望在Linux上也使用Clash的图形界面或其他功能,你可以从官方网站或GitHub页面下载并安装适用于Linux的Clash版本。不过,对于代理设置,我们主要使用环境变量。
  2. 设置环境变量

    • 打开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
  1. 验证代理设置: 如果你希望这些设置在每次打开新的终端会话时都自动生效,可以将上述命令添加到你的shell配置文件(如~/.bashrc~/.bash_profile~/.zshrc等)中,并执行source ~/.bashrc(或对应的配置文件)使更改立即生效。
    • 在Linux终端中,使用curl命令或浏览器尝试访问一个网站来验证代理是否设置成功。
    • 或者,可以在浏览器中设置代理为192.168.1.100:7890,并尝试访问网页。
sh
curl -x socks5h://192.168.1.100:7890 http://www.example.com
  1. 注意事项
    • 确保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 ~/.bashrcsource ~/.zshrc),这样就可以通过运行toggleproxy命令来切换代理状态了。

科学上网linuxclash