Skip to content

使用反向代理访问被墙的网站 #1

@xuandao

Description

@xuandao

在国内,访问被封锁的海外网站成为一件十分麻烦的事情。这时,我们可以使用反向代理服务来绕过封锁,顺利访问墙外资源。在本文中,我们将介绍如何使用 oracle 韩国区的免费实例构建一个反向代理服务,并使用 api.openai.com 为例,让大家更好的理解反向代理的原理和具体操作步骤。

一、搭建反向代理服务器

创建 oracle 实例

参考信息: https://www.oracle.com/cn/cloud/free/

  1. 前提条件

首先需要一个 oracle 帐号,可以前往官网注册获取。登录后进入 oracle 控制台。

  1. 创建实例

点击左侧的“实例”菜单,进入实例管理界面,点击右上角的“创建实例”按钮。在实例创建界面中,选择“Oracle Cloud Free Tier”,创建一个免费实例;

  1. 配置实例

选定服务类型后,需要配置实例信息,如配置名称、管理密码、SSH公钥等信息,选择公网 IP 和块存储类型和大小,确认信息后,点击“创建”按钮。

创建完成后,在实例列表中,可以看到刚刚创建的实例,并且可以看到分配的 IP 地址。

搭建反向代理

NGINX 安装&配置

参考文档: https://docs.oracle.com/zh-tw/learn/oracle-linux-nginx/#before-you-begin

使用 SSH 工具连接到实例,如 Xshell、putty、secureCRT 等。

  1. 安装 NGINX
sudo dnf install -y nginx
  1. 配置 NGINX 配置 (/etc/nginx/conf.d/default.conf)
server {
 listen 80;
 server_name api.openai.com api.yourname.com;

 location / {
 		proxy_pass http://api.openai.com;
 }
}
  1. 启动 Nginx
sudo systemctl enable --now nginx.service

防火墙配置

  1. 开启 oracle 实例的 80 端口
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
  1. 配置 linux 安全策略
setsebool -P httpd_can_network_connect 1

至此,整个反向代理服务配置完成。你可以通过 oracle 实例的公网 ip 直接进行访问。

二、通过反向代理访问

现在,我们已经成功安装好了反向代理服务,接下来,我们将以 api.openai.com 为例,说明如何通过反向代理访问国外网站。

通过 host 绑定访问

  1. 首先,修改 hosts 文件,将 api.openai.com 服务器的IP地址绑定到反向代理服务器的IP上

sudo nano /etc/hosts 在文件末尾添加以下代码 ( api.openai.com 的 IP 地址 ) api.openai.com

  1. 其次,在浏览器输入 api.openai.com 即可访问该网站。

域名绑定

  1. 若你有自己的域名,也可以将域名解析至反向代理服务器(注意 NGINX 配置中需加上你的域名,如 api.yourname.com),后可直接使用域名进行访问。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions