Python如何实现macOS系统代理的设置

 更新时间:2025年01月23日 08:25:55   作者:飞仔FeiZai  
这篇文章主要为大家详细介绍了Python如何实现macOS系统代理的设置,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

设置 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()

到此这篇关于Python如何实现macOS系统代理的设置的文章就介绍到这了,更多相关Python macOS系统代理设置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python多方式分支switch case实现举例详解

    Python多方式分支switch case实现举例详解

    在许多编程语言(如 C、Java)中,switch-case是处理多分支条件的常用语法,这篇文章主要介绍了Python多方式分支switch case实现的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-06-06
  • CentOS7安装Python3的教程详解

    CentOS7安装Python3的教程详解

    这篇文章主要介绍了CentOS7安装Python3的教程,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-04-04
  • python 操作sqlite数据库的方法

    python 操作sqlite数据库的方法

    sqlite的官网 sqlite.org/index.html SQLite 作为一个SQL数据库引擎,是由C语言实现的,又小又快,具有高可靠性且功能齐全。 作为嵌入式数据库,在移动设备中使用非常广泛且方便。本文讲解如何使用python操作sqlite数据库
    2021-06-06
  • 基于Python打造一个你的专属中医养生桌面时钟

    基于Python打造一个你的专属中医养生桌面时钟

    这篇文章主要和大家详细介绍了一个有趣又有用的小项目,即使用 Python 编写一个集成了公历、农历和中医十二时辰养生提示的桌面时钟,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-01-01
  • PythonPC客户端自动化实现原理(pywinauto)

    PythonPC客户端自动化实现原理(pywinauto)

    这篇文章主要介绍了Python基于pywinauto实现PC客户端自动化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python之捕捉异常详解

    Python之捕捉异常详解

    这篇文章主要为大家介绍了Python的捕捉异常,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python基于pycrypto实现的AES加密和解密算法示例

    Python基于pycrypto实现的AES加密和解密算法示例

    这篇文章主要介绍了Python基于pycrypto实现的AES加密和解密算法,结合实例形式分析了Python使用pycrypto模块进行AES加密与解密操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • python实现列表中由数值查到索引的方法

    python实现列表中由数值查到索引的方法

    今天小编就为大家分享一篇python实现列表中由数值查到索引的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python代码结构的基石之main函数实例详解

    Python代码结构的基石之main函数实例详解

    Python作为一门较为灵活的解释型脚本语言,其中定义的main()函数只有当该Python脚本直接作为执行程序时才会执行,这篇文章主要介绍了Python代码结构的基石之main函数的相关资料,需要的朋友可以参考下
    2025-06-06
  • Python判断两个list是否是父子集关系的实例

    Python判断两个list是否是父子集关系的实例

    今天小编就为大家分享一篇Python判断两个list是否是父子集关系的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论