优化更新反代Telegram Bot API文档
This commit is contained in:
parent
4a6d3e80d0
commit
d5a754ffff
@ -121,7 +121,7 @@ function getGuideSidebarZhCN() {
|
|||||||
{
|
{
|
||||||
text: '常见问题',
|
text: '常见问题',
|
||||||
items: [
|
items: [
|
||||||
{ text: 'TG api 被墙', link: '/guide/q1.html' },
|
{ text: '反向代理 Telegram API', link: '/guide/q1.html' },
|
||||||
{ text: 'Agent 启动/上线 问题自检流程', link: '/guide/q2.html' },
|
{ text: 'Agent 启动/上线 问题自检流程', link: '/guide/q2.html' },
|
||||||
{ text: '反向代理 gRPC 端口', link: '/guide/q3.html' },
|
{ text: '反向代理 gRPC 端口', link: '/guide/q3.html' },
|
||||||
{ text: '实时通道断开/在线终端连接失败', link: '/guide/q4.html' },
|
{ text: '实时通道断开/在线终端连接失败', link: '/guide/q4.html' },
|
||||||
|
@ -1,67 +1,83 @@
|
|||||||
## 准备工作
|
## 准备工作
|
||||||
**你可以选择 CloudFlare 的 workers 进行反代,但大陆的网络你懂的,这里介绍用你自己服务器反代方式**
|
|
||||||
搭建一个 TGbot api 反代,你需要:
|
如果你的 Dashboard 服务器无法访问 Telegram Bot API,但你依然想使用 Telegram 来推送通知,你可以尝试使用反向代理的方式解决这个问题。
|
||||||
1.一个不受 GFW 封锁的服务器(且安装好 Nginx)
|
|
||||||
2.一个域名(提前申请 SSL 证书)
|
**这里介绍使用你自己的服务器进行反代的方法。你也可以选择使用 Cloudflare 的 Workers 进行反代,但可能对于中国大陆的用户来说网络连通性依然不佳。**
|
||||||
<br/>
|
|
||||||
|
要搭建一个 Telegram Bot API 反代,你需要准备以下内容:
|
||||||
|
|
||||||
|
1. 一个可以连接 Telegram Bot API 服务器(并安装好 Nginx)。
|
||||||
|
2. 一个域名(提前申请 SSL 证书)。
|
||||||
|
|
||||||
## NGINX 配置
|
## NGINX 配置
|
||||||
编辑你 Nginx 的配置文件,在 http{} 中加上如下配置
|
|
||||||
|
编辑 Nginx 配置文件,在 `http{}` 中添加如下配置:
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
# http强制跳转到htpps
|
# HTTP 强制跳转到 HTTPS
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
server_name yourDomainName;
|
server_name <yourDomainName>;
|
||||||
|
|
||||||
# Enforce HTTPS
|
# 强制 HTTPS
|
||||||
return 301 https://$server_name$request_uri;
|
return 301 https://$server_name$request_uri;
|
||||||
}
|
}
|
||||||
## https
|
|
||||||
|
# HTTPS 配置
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
server_name <yourDomainName>;
|
||||||
|
|
||||||
server_name yourDomainName;
|
# SSL 证书路径
|
||||||
|
ssl_certificate </path/to/your/server.pem>;
|
||||||
|
ssl_certificate_key </path/to/your/server.key>;
|
||||||
|
|
||||||
## ssl密钥路径自己改改
|
# Root 非必要
|
||||||
ssl_certificate server.pem;
|
|
||||||
ssl_certificate_key server.key;
|
|
||||||
|
|
||||||
## root非必要
|
|
||||||
root /var/www/tgbot/;
|
root /var/www/tgbot/;
|
||||||
|
|
||||||
## dns必须写,不然会报502错误
|
# 必须配置 DNS,否则会报 502 错误
|
||||||
resolver 8.8.8.8;
|
resolver 8.8.8.8;
|
||||||
|
|
||||||
## 以bot开头的请求都会被正则匹配到
|
# 以 /bot 开头的请求会被正则匹配
|
||||||
location ~* ^/bot {
|
location ~* ^/bot {
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_pass https://api.telegram.org$request_uri;
|
proxy_pass https://api.telegram.org$request_uri;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
## 和上面root一样非必要,这个主要是用来确认服务器状态的。也可以改成return 403
|
# Root 非必要,主要用于确认服务器状态。也可以改为 return 403
|
||||||
location / {
|
location / {
|
||||||
try_files /$uri $uri /index.html;
|
try_files $uri $uri /index.html;
|
||||||
}
|
}
|
||||||
|
|
||||||
## no log no fix
|
# 错误日志
|
||||||
error_log /var/log/tg.log error;
|
error_log /var/log/tg.log error;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
`yourDomainName` - 你准备的域名
|
|
||||||
`ssl_certificate` - SSL 证书路径
|
- `yourDomainName`:你准备的域名
|
||||||
`ssl_certificate_key` - SSL 证书路径
|
- `ssl_certificate`:SSL 证书路径
|
||||||
<br/>
|
- `ssl_certificate_key`:SSL 证书路径
|
||||||
|
|
||||||
## 使用方式
|
## 使用方式
|
||||||
:tada:然后执行 `systemctl restart nginx` 回到 Nezha 将原来的https://api.telegram.org/ 替换为 https://yourDomainName/ ,即可正常推送消息
|
|
||||||
<br/>
|
执行 `systemctl restart nginx` 重启 Nginx。然后在 Nezha 中将原来的 `https://api.telegram.org/` 替换为 `https://<yourDomainName>/`,即可正常推送消息。
|
||||||
|
|
||||||
## 防止盗用
|
## 防止盗用
|
||||||
`serverIp` - Agent 的 ip 地址,你系统安装的哪个就用哪个命令,ufw iptables 都可.
|
|
||||||
|
配置防火墙以防止他人盗用你的反代服务:
|
||||||
|
|
||||||
|
- `serverIp`:Agent 的 IP 地址。根据你的系统选择适用的命令,`ufw` 或 `iptables` 均可。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#ubuntu
|
# Ubuntu
|
||||||
ufw allow proto tcp from serverIp to any port 443
|
ufw allow proto tcp from <serverIp> to any port 443
|
||||||
#centos
|
|
||||||
|
# CentOS
|
||||||
iptables -I INPUT -p tcp --dport 443 -j DROP
|
iptables -I INPUT -p tcp --dport 443 -j DROP
|
||||||
iptables -I INPUT -s serverIp -p tcp --dport 443 -j ACCEPT
|
iptables -I INPUT -s <serverIp> -p tcp --dport 443 -j ACCEPT
|
||||||
```
|
```
|
||||||
|
|
||||||
|
通过以上配置,可以有效防止未经授权的访问。
|
Loading…
x
Reference in New Issue
Block a user