在 Zeabur 上部署
推荐使用 Zeabur,具体操作如下
- Fork 这个仓库为你自己的仓库
- 在 Zeabur 部署你的仓库
- 在 Zeabur 控制台新增一个服务
- 选择从源码部署
- 选择你 fork 的仓库
- 选择 main 分支,开始部署
- 部署成功后,在 setting 选项卡下生成域名
- 最后得到你的服务
在 Vercel 上部署
如果使用 Vercel 部署服务,必须自定义域名,因为自定义域名不受 GFW 影响,具体操作如下
- 点击上方一键部署按钮
- 部署后会自动为你 fork 此仓库,在输入框中输入自定义的仓库名称
- 部署成功后,得到你的服务
- 你必须为你的服务添加一个自定义域名,否则你将不能在国内访问你的服务
Zeabur、Vercel如何使用
⚠️ 由于平台自身规则,api不支持SSE
无论你使用 Zeabur 还是 Vercel,部署完成后你都会得到以下这个代理服务
其中红框中的地址会完全转发到https://api.openai.com
,并且此地址在国内可访问
你可以在支持自定义API
的应用中使用你的代理服务,实现在国内调用openai
接口的目的
例如openai-translator:
腾讯云部署
⚠️ 由于腾讯云自身规则,虽然代码本身支持SSE,但部署为云函数后可能无法正常工作
① 进入云函数创建面板,选择日本/新加坡(有issue反馈因为unsupported location被封号,虽然无法完全确定原因,但建议不再使用中国香港)、web函数、NodeJS 16。
② 在函数代码处点击app.js
将本项目 app.js 的代码粘贴进去。
其他不用改,点创建。
③ 创建完成后,点击「函数管理」→「函数代码」。等编辑器把函数代码加载完成后 CloudStudio → 终端 → 新终端,打开一个新终端。
④ 在出现的终端中粘贴以下代码
1 | cd src && yarn add body-parser@1.20.2 cross-fetch@3.1.5 eventsource-parser@0.1.0 express@4.18.2 multer@1.4.5-lts.1 |
⑤ 点编辑器右上角的「部署」,等待部署完成。
⑥ 下拉或者进入「触发管理」可以看到云函数的访问地址。
⑦ 调整函数执行超时时间,默认的3s会经常超时,建议调整为30s;同时添加环境变量 TIMEOUT
(单位为毫秒,如30000)
⑧ 如果你想绑定自己的域名,需要在「触发管理」中开启「标准API网关」,按腾讯云教程进行配置。
腾讯云Proxy的使用
使用时将 https://api.openai.com/
替换为该路径即可,如 https://api.openai.com/v1/chat/completions
替换为 https://xxxxx.apigw.tencentcs.com/release/v1/chat/completions
自建站点
1 | sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* |
搭建Socks5代理服务器(CentOS)
使用ss51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44# 安装依赖程序
yum -y install gcc openldap-devel pam-devel openssl-devel vim
# 下载ss5源码包
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
# 解压源码安装包
tar zxvf ss5-3.8.9-8.tar.gz
# 进入目录并编译安装
cd ss5-3.8.9 ; ./configure
make && make install
cp /etc/opt/ss5/ss5.conf /etc/opt/ss5/ss5.confbak
vim /etc/opt/ss5/ss5.conf
# 输入:set nu 可以标注行号,找到87行取消注释:#auth 0.0.0.0/0
auth 0.0.0.0/0
# 找到第203行取消注释,同时开启认证 【注意修改的那个u】 :#permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -
permit u 0.0.0.0/0 - 0.0.0.0/0
# 如果不需要添加用户密码认证仅去掉注释即可,也不需要修改/etc/opt/ss5/ss5.passwd文件
# 在/etc/opt/ss5/ss5.passwd文件中可以添加用户名和密码,每行写一个用户名和密码,用户名和密码用空格隔开,例如
test 123456ss5
vim /etc/sysconfig/ss5
# 第2行取消注释,同时修改为自己需要的端口,默认端口为1080
SS5_OPTS=" -u root -b 0.0.0.0:9988"
# 调整ss5性能
ulimit -SHn 10240
ulimit -SHs unlimited
echo 100000 >/proc/sys/net/nf_conntrack_max
# 修改执行权限并开机自启
chmod u+x /etc/rc.d/init.d/ss5
chmod +x /etc/init.d/ss5
chkconfig --add ss5
# 启动ss5服务
systemctl start ss5
systemctl status ss5
# 需要确保支持X server
yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1
# ∙ X11-forwarding : ✔ (remote display is forwarded through SSH)
# mobaxtern里浏览器访问
google-chrome --no-sandbox --proxy-server="socks5://xxx:1080"
1 | # mac |
或者使用gost,以下为本地与本地代理之间的通信
本地代理和服务端代理之间为private协议1
2
3
4wget https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-amd64-2.11.5.gz
gost -L user:pass@:1080 # 服务端
gost -L=:8080\?secrets=secrets.txt -F=socks5://user:pass@host:1080 # 境内代理
google-chrome --no-sandbox --proxy-server="127.0.0.1:8080"
HTTP状态码407表示代理服务器要求进行身份验证,但客户端没有提供有效的身份验证信息。这通常发生在需要代理身份验证的网络环境中。要处理HTTP 407状态码,客户端通常需要提供有效的身份验证凭据。这通常是通过在HTTP请求头中添加Proxy-Authorization字段来完成的。
例如:1
Proxy-Authorization: Basic base64encoded(username:password)
这里,base64encoded是使用Base64编码生成的用户名和密码的字符串,https://base64.us/。
Windows指定某个软件走代理
通过proxycap配置Rules
cloudflare warp
在warp文件夹下,生成docker-compose.yml文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18version: '3'
services:
warp:
image: caomingjun/warp
container_name: warp
ports:
- '1080:1080'
restart: always
environment:
- WARP_SLEEP=2
cap_add:
- NET_ADMIN
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv4.conf.all.src_valid_mark=1
volumes:
- ./data:/var/lib/cloudflare-warp
启动容器,1080是已经走warp网络了的,但是该端口不对外,所以需要另外启动一个1088端口转发到该1080端口,1088端口启动加密并对外提供服务。1
2
3
4docker-compose up -d
curl --socks5 127.0.0.1:1080 https://cloudflare.com/cdn-cgi/trace
iptables -t filter -I INPUT -p tcp --dport 1088 -j ACCEPT -m comment --comment gost
./gost -L=socks5://user:passwd@:1088 -F=socks5://127.0.0.1:1080