首页 > 文章 > 杂文

如果想访问一个国内访问不了的国外接口,该如何操作?
时间:2025-07-28 10:40:35  点击: 来源:本站  作者:admin

有这么一个需求,业务上想通过curl的方式请求国外的一个接口,但是国外接口在国内无法访问,我们该如何操作呢。



这种情况我们可以通过简单的代理的方式来实现,下面给大家提供几 ...

有这么一个需求,业务上想通过curl的方式请求国外的一个接口,但是国外接口在国内无法访问,我们该如何操作呢。



这种情况我们可以通过简单的代理的方式来实现,下面给大家提供几种方式来实现我们的需求:

方法一:使用 Squid HTTP 代理(适合浏览器和 HTTP 工具)
步骤(假设国外服务器系统为 Ubuntu):

安装 Squid

sudo apt update
sudo apt install squid -y


编辑配置文件

sudo nano /etc/squid/squid.conf


在配置文件末尾添加:

http_access allow all
http_port 3128


重启 Squid

sudo systemctl restart squid
sudo systemctl enable squid


开放 3128 端口(防火墙设置)

sudo ufw allow 3128


国内访问方式(以 curl 为例)

curl -x http://<你国外服务器IP>:3128 https://v1.cnop.net


方法二:使用 socat 建立端口转发(适合单一接口转发)

如果你只想让国内访问某一个接口地址,比如 https://v1.cnop.net,可以在国外服务器上直接转发。
步骤:

 安装 socat

sudo apt update
sudo apt install socat -y


启动转发(将国外服务器的某个端口转发到接口)

sudo socat TCP-LISTEN:8888,reuseaddr,fork TLS:api.cnop.net:443,verify=0


上面会将 https://v1.cnop.net 映射到 http://your-server-ip:8888

国内访问方式:


    curl -k http://your-server-ip:8888


方法三:使用 SSH 动态代理(适合临时使用,适配全局流量)

如果你只偶尔访问该接口,也可以使用 SSH 建立一个 SOCKS 代理:
国内电脑执行命令(假设你用的是 Linux/Mac):

ssh -D 1080 user@国外服务器IP


    Windows 可以使用 PuTTY / MobaXterm 等工具配置 SOCKS5 代理。

然后将你国内软件(curl、Postman、浏览器)配置 SOCKS5 代理:

socks5://127.0.0.1:1080

进阶:nginx 反向代理(适合接口映射,自建中转服务)

如果你想给 https://v1.cnop.net 设置一个国内可用的中转地址,可以在国外服务器上用 NGINX 设置反向代理:

安装 NGINX:

sudo apt install nginx -y


配置代理(/etc/nginx/sites-enabled/default 或新增配置):

server {
    listen 8080;
    location / {
        proxy_pass https://v1.cnop.net;
        proxy_ssl_verify off;
    }
}


重启 NGINX:

sudo systemctl restart nginx


国内访问:

curl http://your-server-ip:8080

”您可通过以下微信二维码,赞赏作者“
 
 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
如果想访问一个国内访问不了的国外接口,该如何操作?
如果想访问一个国内访
datax mysql-clickhouse 数据同步事例
datax mysql-clickhou
windows如何挂载webdav?
windows如何挂载webda
linux服务器同步互联网时间
linux服务器同步互联
相关文章
栏目更新
栏目热门

关于我们 | 广告服务 | 联系我们 | 网站地图 | 免责声明 | WAP | RSS


Copyright © 运维之家 2013-2025