设置 SOCKS 代理
在 macOS 系统中,可以通过 networksetup
工具来设置 SOCKS 代理。以下是 Python 实现的方法:
使用 networksetup
设置 SOCKS 代理
|---|---------------------------------------------------------------------------|
| | import subprocess
|
| | |
| | def set_socks_proxy(server, port):
|
| | """
|
| | 设置 macOS 系统的 SOCKS 代理。
|
| | :param server: 代理服务器地址
|
| | :param port: 代理端口
|
| | """
|
| | try:
|
| | # 设置 SOCKS 代理
|
| | subprocess.run(
|
| | ['networksetup', '-setsocksfirewallproxy', 'Wi-Fi', server, str(port)],
|
| | check=True
|
| | )
|
| | print(f"SOCKS 代理已设置为 {server}:{port}")
|
| | except subprocess.CalledProcessError as e:
|
| | print(f"设置 SOCKS 代理失败: {e}")
|
| | |
| | def disable_socks_proxy():
|
| | """
|
| | 禁用 macOS 系统的 SOCKS 代理。
|
| | """
|
| | try:
|
| | # 关闭 SOCKS 代理
|
| | subprocess.run(
|
| | ['networksetup', '-setsocksfirewallproxystate', 'Wi-Fi', 'off'],
|
| | check=True
|
| | )
|
| | print("SOCKS 代理已禁用")
|
| | except subprocess.CalledProcessError as e:
|
| | print(f"禁用 SOCKS 代理失败: {e}")
|
| | |
| | if __name__ == "__main__":
|
| | # 设置 SOCKS 代理
|
| | set_socks_proxy('127.0.0.1', 1080)
|
| | |
| | # 禁用 SOCKS 代理
|
| | # disable_socks_proxy()
|
参数说明
networksetup
是 macOS 用于管理网络设置的命令行工具。-setsocksfirewallproxy
用于配置 SOCKS 代理。-setsocksfirewallproxystate
用于启用或禁用 SOCKS 代理。Wi-Fi
是网络服务名称,可能需要根据实际情况调整(例如Ethernet
)。
检查网络服务名称
在执行脚本前,可以通过以下命令查看可用的网络服务名称:
|---|----------------------------------------|
| | networksetup -listallnetworkservices
|
找到正确的服务名称(如 Wi-Fi
或 Ethernet
),并替换到脚本中。
结果验证
可以通过以下命令验证是否成功设置代理:
|---|---------------------------------------------|
| | networksetup -getsocksfirewallproxy Wi-Fi
|
输出类似以下内容:
|---|----------------------------------|
| | Enabled: Yes
|
| | Server: 127.0.0.1
|
| | Port: 1080
|
| | Authenticated Proxy Enabled: 0
|
注意事项
- 权限 :某些网络设置可能需要管理员权限。运行脚本时可能需要使用
sudo
。 - 自动化工具 :确保 Python 版本支持
subprocess.run
,并在 macOS 环境中运行。 - 清理 :在脚本完成后,如果代理设置不再需要,务必调用
disable_socks_proxy()
清除设置。
设置 HTTP 和 HTTPS 代理
|---|--------------------------------------------------------------------------------------------------|
| | import subprocess
|
| | |
| | def set_web_proxy(server, port):
|
| | """
|
| | 设置 macOS 系统代理。
|
| | :param server: 代理服务器地址
|
| | :param port: 代理端口
|
| | """
|
| | # 设置 HTTP 和 HTTPS 代理
|
| | subprocess.run(['networksetup', '-setwebproxy', 'Wi-Fi', server, str(port)], check=True)
|
| | subprocess.run(['networksetup', '-setsecurewebproxy', 'Wi-Fi', server, str(port)], check=True)
|
| | print(f"HTTP 和 HTTPS 代理设置为 {server}:{port}")
|
| | |
| | def disable_web_proxy():
|
| | """
|
| | 禁用 macOS 系统代理。
|
| | """
|
| | # 关闭 HTTP 和 HTTPS 代理
|
| | subprocess.run(['networksetup', '-setwebproxystate', 'Wi-Fi', 'off'], check=True)
|
| | subprocess.run(['networksetup', '-setsecurewebproxystate', 'Wi-Fi', 'off'], check=True)
|
| | print("HTTP 和 HTTPS 代理已禁用")
|
| | |
| | if __name__ == "__main__":
|
| | # 设置代理
|
| | set_proxy('127.0.0.1', 1081)
|
| | |
| | # 禁用代理
|
| | # disable_web_proxy()
|
关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com)