代理IP怎么用?从配置到实战的完整教程

代理IP怎么用?从配置到实战的完整教程

发布时间:2026-05-15  阅读:35

第一次接触代理IP的人,最常见的问题是:拿到一个IP地址和端口,然后呢?怎么把它用到自己的程序里?怎么验证它是不是真的能工作?这代理IP怎么用就成了第一道门槛。

这篇教程从最基础的代理IP配置讲起,覆盖浏览器、Python、命令行三种最常见的用法,看完就能上手。

基础知识:代理IP的三个要素

一个可用的代理IP,通常由三个信息组成:

IP地址:端口号

比如 127.0.0.1:8080。有些代理还需要用户名和密码认证,格式就变成:

用户名:密码@IP地址:端口号

代理协议也分几种,常见的是 HTTP、HTTPS 和 SOCKS5:

  • HTTP代理:只处理HTTP请求,最常见,配置最简单。
  • HTTPS代理:支持加密的HTTP请求(也就是HTTPS)。
  • SOCKS5代理:更底层的协议,支持TCP和UDP,不限于HTTP流量,游戏、视频等场景常用。

拿到这些信息之后,就可以开始配置了。

方法一:浏览器配置代理IP

如果你只是想让自己的浏览器走代理IP,不需要写代码,直接改系统代理设置就行。

Chrome/Edge(Windows)

  1. 打开浏览器设置,搜索"代理"
  2. 点击"打开您计算机的代理设置"
  3. 在"手动设置代理"中打开"使用代理服务器"
  4. 填入代理IP和端口
  5. 点击保存

注意:这样设置之后,你的整个系统流量都会走代理,不只是浏览器。用完记得关掉,不然浏览国内网站会变慢。

Firefox(推荐用于测试)

Firefox可以独立设置代理,不影响系统其他流量:

  1. 打开 Firefox 设置 → 通用 → 网络设置
  2. 选择"手动代理配置"
  3. 填入代理IP、端口,选择对应的协议类型(HTTP/HTTPS/SOCKS5)
  4. 点击确定

用 Firefox 测试代理IP是最方便的,因为配置独立、切换快,测完关掉就行。

浏览器插件(最便捷)

如果你频繁切换代理IP,装个浏览器插件会方便很多。推荐 SwitchyOmega(Chrome和Firefox都支持):

  1. 安装 SwitchyOmega 插件
  2. 新建一个情景模式,填入代理IP、端口、协议类型
  3. 需要时点击插件图标一键切换

SwitchyOmega 还支持多个代理配置之间快速切换,适合测试不同服务商的代理效果。

方法二:Python 代码中使用代理IP

Python 是代理IP最常见的应用场景之一,爬虫、数据采集、API调用都需要代理。

requests 库(最简单)

import requests

# 普通代理
proxies = {
    "http": "http://代理IP:端口",
    "https": "http://代理IP:端口"
}

resp = requests.get("https://httpbin.org/ip", proxies=proxies)
print(resp.json())

带用户名密码的代理:

proxies = {
    "http": "http://用户名:密码@代理IP:端口",
    "https": "http://用户名:密码@代理IP:端口"
}

resp = requests.get("https://httpbin.org/ip", proxies=proxies)

隧道代理(最简单的爬虫代理方案)

隧道代理不需要管IP切换,配一个固定地址就行:

import requests

# 隧道代理:固定地址,自动换IP
proxies = {
    "http": "http://隧道域名:端口",
    "https": "http://隧道域名:端口"
}

# 每次请求背后都是不同的出口IP
for i in range(10):
    resp = requests.get("https://httpbin.org/ip", proxies=proxies)
    print(f"第{i+1}次请求,出口IP: {resp.json()['origin']}")

这就是隧道代理最大的好处——你只管发请求,IP切换由服务端自动完成。

Scrapy 中使用代理

如果你用 Scrapy 框架做爬虫,可以在中间件里配置代理:

# middlewares.py
class ProxyMiddleware:
    def process_request(self, request, spider):
        request.meta['proxy'] = "http://代理IP:端口"
        # 如果代理需要认证
        # request.headers['Proxy-Authorization'] = 'Basic ' + base64.b64encode(b'user:pass').decode()

然后在 settings.py 中启用这个中间件:

DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.ProxyMiddleware': 543,
}

Selenium 中使用代理

有些网页需要浏览器渲染,Selenium 是常用选择。给 Selenium 配代理稍微复杂一点:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://代理IP:端口')

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://httpbin.org/ip")
print(driver.page_source)

带认证的代理需要额外处理,可以参考 selenium-wire 这个库,它支持代理认证:

from seleniumwire import webdriver

options = {
    'proxy': {
        'http': 'http://用户名:密码@代理IP:端口',
        'https': 'http://用户名:密码@代理IP:端口',
    }
}

driver = webdriver.Chrome(seleniumwire_options=options)

方法三:命令行中使用代理IP

有些场景下你需要在命令行里走代理,比如用 curl、wget 发请求。

curl

# 普通代理
curl -x http://代理IP:端口 https://httpbin.org/ip

# 带认证的代理
curl -x http://用户名:密码@代理IP:端口 https://httpbin.org/ip

wget

wget -e use_proxy=yes -e http_proxy=代理IP:端口 https://httpbin.org/ip

设置系统环境变量(影响全部命令行工具)

export http_proxy="http://代理IP:端口"
export https_proxy="http://代理IP:端口"

# 测试
curl https://httpbin.org/ip

# 用完取消
unset http_proxy https_proxy

怎么验证代理IP是否生效

配完之后,你肯定想知道这东西到底有没有在用。最简单的办法是访问 httpbin.org/ip,它能返回你当前的出口IP。

import requests

# 不用代理
resp = requests.get("https://httpbin.org/ip")
print("本机IP:", resp.json()['origin'])

# 用代理
proxies = {"http": "http://代理IP:端口", "https": "http://代理IP:端口"}
resp = requests.get("https://httpbin.org/ip", proxies=proxies)
print("代理IP:", resp.json()['origin'])

如果两个IP不一样,说明代理配置生效了。

常见的验证网站还有:

  • https://httpbin.org/ip —— 返回IP最简单
  • https://ip.sb —— 返回更详细的信息
  • https://www.ipip.net/ip.html —— 中文界面,能看到IP归属地

常见问题排查

连不上代理

  • 检查IP和端口是否正确
  • 检查防火墙是否拦截了代理端口
  • 确认代理服务没有过期或欠费

能连上但访问某些网站报错

  • 可能是代理IP被目标网站标记了,换一个IP试试
  • 如果用的是HTTP代理但目标网站是HTTPS,确认代理支持HTTPS

代理生效了但速度很慢

  • 在晚高峰时段代理会比较慢,这是带宽共享导致的
  • 如果你对速度要求高,选独享带宽的代理套餐

Python 代码报 ProxyError

  • 检查代理地址拼写是否正确
  • 确认网络环境能连通代理服务器
  • 尝试 timeout 参数设置合理的超时秒数,比如 timeout=10

总结

代理IP的使用其实不复杂,核心就是三步:拿信息 → 配进去 → 验证生效

  • 浏览器测试用 Firefox 或 SwitchyOmega 插件最方便
  • Python 爬虫直接用 requests 或隧道代理,代码量很少
  • 命令行用 curl -x 一句搞定
  • 配完之后用 httpbin.org/ip 验证IP是否切换成功

如果你想省去自己折腾换IP的麻烦,可以直接用悟空代理(www.wukongdaili.com)的隧道代理。一个固定地址,背后自动切换出口IP,Python 代码不需要写任何切换逻辑。也提供静态住宅代理和独享代理,适合对IP身份要求更高的场景。先试用再决定,避免踩坑。

悟空代理注册送ip
免费试用

客服

在线客服:

:3329077489

:18328351249 / 13316588914

:service@wukongdaili.com

官方客服微信二维码 官方客服

技术客服微信二维码 技术客服