温馨提示×

Ubuntu Python网络如何设置

小樊
47
2025-08-25 18:15:37
栏目: 编程语言

Ubuntu Python网络设置主要涉及系统网络配置和Python网络编程环境配置,具体如下:

一、系统网络配置(非Python代码层面)

1. 配置网络接口(需管理员权限)

  • 查看网络接口
    ip aifconfig(需安装net-tools)。
  • 编辑配置文件(Ubuntu 18.04及以上):
    sudo nano /etc/netplan/01-netcfg.yaml  # 静态IP示例
    
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:  # 替换为实际网卡名
          dhcp4: no
          addresses: [192.168.1.100/24]  # IP/子网掩码
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]  # DNS
    
    保存后执行:sudo netplan apply
    (Ubuntu 16.04及以下需编辑/etc/network/interfaces文件)。

2. 代理设置(可选)

  • 系统全局代理
    sudo nano /etc/environment
    
    添加:
    http_proxy=http://proxy_ip:port
    https_proxy=http://proxy_ip:port
    保存后重启生效。

二、Python网络编程环境配置

1. 安装基础库

sudo apt update
sudo apt install python3 python3-pip  # 安装Python和pip
pip3 install requests aiohttp  # 安装高级网络库(如需异步用aiohttp)

2. 代码示例

  • HTTP请求(使用requests库)

    import requests
    proxies = {"http": "http://proxy_ip:port", "https": "http://proxy_ip:port"}  # 代理配置(可选)
    response = requests.get("http://example.com", proxies=proxies)
    print(response.text)
    
  • Socket编程(基础网络通信)

    import socket
    # 服务端
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.bind(("0.0.0.0", 8080))  # 监听所有IP的8080端口
        s.listen(1)
        conn, addr = s.accept()
        print(f"Connected by {addr}")
        conn.sendall(b"Hello from server!")
    

三、权限与调试

  • 非root用户运行Python脚本
    避免直接使用sudo运行Python脚本,可通过chmod +x赋予脚本可执行权限,或通过visudo配置sudoers文件授权特定命令。
  • 调试工具
    • 安装tcpdumpWireshark抓包分析网络流量:
      sudo apt install tcpdump
    • 使用curl测试网络连通性:
      curl -I http://example.com

注意事项

  • 配置系统网络时需谨慎,错误的配置可能导致网络中断。
  • Python网络编程需遵守目标服务器的访问规则,避免触发安全策略。

参考资料:

0