跳到正文

代理格式转换:host:port:user:pass 怎么改

同一个代理有四种写法。按工具要求的那种填,其余的批量转换,不用重新敲密码。

同一个代理的四种写法

同一个代理的四种写法
项目示例常见填写位置
分框填写主机、端口、账号、密码各一格浏览器、Telegram、系统和应用的代理表单
HOST:PORT:LOGIN:PASSWORDHOST:2222:LOGIN:PASSWORD一行一个代理的批量导入框
LOGIN:PASSWORD@HOST:PORTLOGIN:PASSWORD@HOST:2222只给一整串、不带协议的工具
URL 写法http://LOGIN:PASSWORD@HOST:2222curl、Python Requests、环境变量

写法依据 curl 手册和 Requests 文档(2026 年 11 月 15 日读),以及 Proxy302 的批量导入和 Dolphin {anty} 格式指南。最后一列是常见情况,不是规定:以你用的工具输入框下面的提示为准。

为什么顺序不能乱

URL 的结构是 scheme://userinfo@host:port,账号密码在前,用 @ 和主机隔开。列表写法没有这个分隔符,工具靠数冒号来分:开头一段是主机,接着端口、账号、密码。

密码本身带冒号或 @,就会把这种数法搞乱。URL 写法里这些字符必须做百分号编码,curl 手册就是这么要求的:@ 写成 %40,冒号写成 %3a。批量导入框一般不做编码,最稳的办法是密码里不带这些字符,或者用文档写明拆分规则的工具。

协议也要对上。curl 遇到不写协议或写 http:// 的代理按 HTTP 处理,socks5:// 或 socks5h:// 按 SOCKS5 处理,所以端口要对应:Proxy302 上 HTTP 是 2222,SOCKS5 是 3333。

用 Python 转换任意一行

from urllib.parse import quote
import re

def parse(line):
    line = line.strip()
    if "://" in line:
        line = line.split("://", 1)[1]
    if re.match(r"^[^:@/]+:\d+:", line):   # HOST:PORT:LOGIN:PASSWORD
        host, port, user, password = line.split(":", 3)
    elif "@" in line:                    # LOGIN:PASSWORD@HOST:PORT
        auth, _, hostport = line.rpartition("@")
        user, _, password = auth.partition(":")
        host, _, port = hostport.rpartition(":")
    else:
        raise ValueError("unknown format: " + line)
    return host, port, user, password

def to_at(h, p, u, pw):
    return f"{u}:{pw}@{h}:{p}"

def to_colon(h, p, u, pw):
    return f"{h}:{p}:{u}:{pw}"

def to_url(h, p, u, pw, scheme="http"):
    return f"{scheme}://{quote(u, safe='')}:{quote(pw, safe='')}@{h}:{p}"


for line in open("proxies.txt"):
    if line.strip():
        print(to_url(*parse(line), scheme="http"))

仅为示例。它读取 proxies.txt,每行一个代理,列表写法或 @ 写法都行(带协议头会忽略),输出把账号密码做了百分号编码的 http:// URL。要输出 SOCKS5 URL,把 http 换成 socks5h。

用 awk 互换两种列表写法

# HOST:PORT:LOGIN:PASSWORD  ->  LOGIN:PASSWORD@HOST:PORT
awk -F: '{printf "%s:%s@%s:%s\n", $3, $4, $1, $2}' proxies.txt

# LOGIN:PASSWORD@HOST:PORT  ->  HOST:PORT:LOGIN:PASSWORD
awk -F'[:@]' '{printf "%s:%s:%s:%s\n", $3, $4, $1, $2}' proxies.txt

仅为示例。前提是账号和密码里没有冒号和 @;可能有的话用上面的 Python 版本。

安全地转换并导入一批代理

  1. 第 1 步:从「我的资产」复制各项

    打开「我的资产」,复制一条 IP 的主机、端口、账号和密码。用复制不要手敲,特殊字符才不会丢。

  2. 第 2 步:核对端口和协议

    Proxy302 网关上 2222 是 HTTP,3333 是 SOCKS5。每个 IP 只按一种协议发放,串里的协议头要和它一致。

  3. 第 3 步:转换一行并测试

    拼成工具要求的格式,再跑下面的 curl 检查。每条都应打印出口 IP。

    预期结果 看到出口 IP 和国家,而不是报错或 407。

  4. 第 4 步:转换其余的并导入

    对整份清单跑转换,粘进工具,先只加一条。头一条连得上,再加其余的。

用 curl 测试转换后的一行

curl -x http://LOGIN:PASSWORD@HOST:2222 https://ipinfo.io/json
curl -x socks5h://LOGIN:PASSWORD@HOST:3333 https://ipinfo.io/json

仅为示例:把占位符换成「我的资产」里的值,选和这条 IP 协议一致的那行。密码含特殊字符时要做百分号编码。

转换后的行被拒绝时

工具提示格式无效,或把端口当成主机的一部分

检查 顺序是不是和工具提示完全一致:主机、端口、账号、密码,或账号、密码、主机、端口?

处理 换成提示里的写法,并去掉行里的空格和结尾换行。

407,或登录框反复弹出

检查 密码里有没有 @、冒号或 %?

处理 URL 串里做百分号编码,或把账号密码分框填写。可看 407 指南。

停止条件 复制粘贴的账号密码在 curl 里依然失败,就别再改字符串了,带订单号联系 Support。

买的是 HTTP 的 IP,走 3333 端口连接被重置或超时

检查 这条 IP 是按哪种协议发放的?

处理 用 http:// 加 2222 端口,或者重新买一条 SOCKS5 的 IP 再用 3333。

代理格式常见问题

代理的正确格式是什么?

没有唯一答案。同样五项可以写成 HOST:PORT:LOGIN:PASSWORD、LOGIN:PASSWORD@HOST:PORT 或 http://LOGIN:PASSWORD@HOST:PORT。以工具输入框的提示为准。

host:port:user:pass 怎么转成 user:pass@host:port?

按前三个冒号拆成主机、端口、账号、密码,再拼成 账号:密码@主机:端口。本页的 awk 和 Python 示例就是这么做的。

密码里有 @ 或冒号怎么办?

URL 串里把 @ 写成 %40、冒号写成 %3a,curl 会解码。纯列表里最稳的办法是密码不带这些字符。

curl 一定要写 http:// 吗?

不用。不写协议时 curl 当 HTTP 代理,但建议写上,一眼能看出是 http、socks5 还是 socks5h。

把带密码的代理清单放在文本文件里安全吗?

当作机密文件处理:别放进别人也能访问的文件夹,也别纳入版本管理,Requests 文档也提醒了账号密码放文件里的风险。

Proxy302 的取值

在 Proxy302,每条 IP 的主机、端口、账号和密码都列在「我的资产」。HTTP 用 2222 端口,SOCKS5 用 3333 端口,每条 IP 只按购买时选的一种协议发放。

静态住宅 IP 1 天 US$0.50,30 天 US$7.99(7.99 ÷ 30 ≈ 每天 US$0.27),各国同价。没有免费试用,最小购买是一条 IP 用一天。

参考资料

5
  1. RFC 3986:URI 通用语法

    官方文档 · 确认日期:

    2026 年 11 月 15 日读:authority 由 [ userinfo "@" ] host [ ":" port ] 组成;userinfo 里的特殊字符要百分号编码;userinfo 里写 user:password 的形式被标为不推荐,其中的密码要小心处理。

  2. curl 手册页

    官方文档 · 确认日期:

    2026 年 11 月 15 日读:-x/--proxy 接收 [protocol://]host[:port];不写协议或写 http:// 按 HTTP 代理处理,socks5:// 和 socks5h:// 指定 SOCKS5;代理串里的用户名和密码会被 curl 做 URL 解码,所以 @ 要写成 %40,冒号写成 %3a。

  3. Requests 文档:Proxies

    官方文档 · 确认日期:

    2026 年 11 月 15 日读:代理要用 HTTP Basic 认证时,在 proxies 字典或 HTTP_PROXY / HTTPS_PROXY 变量里用 http://user:password@host/ 的写法;文档提醒把账号密码放进环境变量或纳入版本管理的文件有安全风险。

  4. Python 文档:urllib.parse

    官方文档 · 确认日期:

    2026 年 11 月 15 日读:quote(string, safe) 对字符串做百分号编码;示例 quote('/El Niño/') 得到 '/El%20Ni%C3%B1o/'。

  5. Proxy302 产品信息与价目表

    产品观察 · 确认日期:

    站点产品事实表(2026 年 10 月对照控制台、后端和价目表核对,11 月 4 日做过协议测试):产品、价格(US$,1 PTC = US$1)、租期、协议和端口、国家、没有免费试用。

准备好试试了吗?

注册账号、充值一次,就能选动态住宅、静态 ISP 或数据中心 IP,几分钟配进你的浏览器。