奉贤网站建设哪家好,用游戏人物做网站属于侵权吗,金利福珠宝的网站建设理念,网站无障碍建设如何通过 FRP 实现内网穿透#xff1a;群晖 NAS 的 Gitea 和 GitLab 访问配置指南
在自建服务的过程中#xff0c;经常会遇到内网访问受限的问题。本文将介绍如何利用 FRP#xff08;Fast Reverse Proxy#xff09;来实现内网穿透#xff0c;以便在外网访问群晖 NAS 上的…如何通过 FRP 实现内网穿透群晖 NAS 的 Gitea 和 GitLab 访问配置指南
在自建服务的过程中经常会遇到内网访问受限的问题。本文将介绍如何利用 FRPFast Reverse Proxy来实现内网穿透以便在外网访问群晖 NAS 上的 Gitea 和 GitLab 服务。
一、配置目标与实现方案
本文的目标是通过 FRP 和 Nginx 将群晖 NAS 上的 Gitea 和 GitLab 服务公开在互联网上实现以下功能
通过自定义域名访问服务用户可以直接通过域名访问服务而不需输入端口号。确保连接的安全性通过 Token 认证和反向代理配置提高服务的安全性。
二、阿里云服务器配置 FRP 服务端
首先需要在阿里云服务器上安装并配置 FRP 服务端它将接收来自群晖 NAS 上 FRP 客户端的连接请求并将请求通过隧道转发到相应的端口。
1. 安装 FRP 服务端 下载 FRP选择适合的版本并下载以下为示例 wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz解压文件 tar -zxvf frp_0.37.0_linux_amd64.tar.gz
cd frp_0.37.0_linux_amd64将文件移至指定目录 sudo mkdir /etc/frp
sudo mv * /etc/frp
cd /etc/frp2. 配置 FRP 服务端frps.ini
在 /etc/frp 目录中创建或编辑 frps.ini 文件配置如下
[common]
bind_port 7000 # 用于客户端连接的端口
dashboard_port 7500 # 仪表板端口用于查看连接状态
dashboard_user admin # 仪表板用户名
dashboard_pwd password # 仪表板密码
auth.token 你的token # 客户端和服务端认证的 tokenbind_port设置为 7000FRP 服务端将通过该端口接收客户端连接。dashboard_port设置为 7500通过该端口可以查看 FRP 的连接状态。auth.token用于客户端和服务端的身份验证保证连接的安全性。
3. 启动 FRP 服务端
在 /etc/frp 目录下启动 FRP 服务端
./frps -c frps.ini 4. 配置 FRP 服务端为系统服务可选
可以将 FRP 服务端配置为系统服务确保服务器重启后服务自动运行。 创建服务文件 sudo nano /etc/systemd/system/frps.service填入以下内容 [Unit]
DescriptionFRP Server
Afternetwork.target[Service]
ExecStart/etc/frp/frps -c /etc/frp/frps.ini
Restarton-failure[Install]
WantedBymulti-user.target启动并启用服务 sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps5. 配置阿里云安全组
在阿里云控制台中确保 7000 和 7500 端口的入站规则已开放以便客户端连接和仪表板访问。 三、群晖 NAS 配置 FRP 客户端
在群晖上配置 FRP 客户端将 Gitea 和 GitLab 服务通过隧道转发到阿里云服务器上的指定端口。
1. 配置 FRP 客户端frpc.toml
在群晖上创建 frpc.toml 文件内容如下
# 公共配置
serverAddr 阿里云服务器公网IP
serverPort 7000
auth.method token
auth.token 你的token# Gitea 服务转发
[[proxies]]
name Gitea
type tcp
localIP 127.0.0.1
localPort 3000 # Gitea 在群晖上的端口
remotePort 3000 # 阿里云上的访问端口# GitLab 服务转发
[[proxies]]
name GitLab
type tcp
localIP 127.0.0.1
localPort 8888 # GitLab 在群晖上的端口
remotePort 8888 # 阿里云上的访问端口serverAddr 和 serverPortFRP 服务端的 IP 地址和端口。proxies定义每个服务的转发规则将群晖上的服务端口映射到阿里云的对应端口。
2. 启动 FRP 客户端
使用以下命令启动 FRP 客户端
./frpc -c /path/to/frpc.toml 四、阿里云配置 Nginx 反向代理
在阿里云上配置 Nginx使每个服务可以通过独立的域名访问。
1. Gitea 的 Nginx 配置
在 /etc/nginx/sites-available/gitea 中配置
server {listen 80;server_name gitea.example.com;location / {proxy_pass http://127.0.0.1:3000; # FRP 转发的 Gitea 端口proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;}
}2. GitLab 的 Nginx 配置
在 /etc/nginx/sites-available/gitlab 中配置
server {listen 80;server_name gitlab.example.com;location / {proxy_pass http://127.0.0.1:8888; # FRP 转发的 GitLab 端口proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;}
}3. 启用并重启 Nginx
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx五、通过 1Panel 安装 FRP 服务端
1Panel 是新一代的 Linux 服务器运维管理面板 如果系统是 Ubuntu 可以通过下面的命令安装
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh sudo bash quick_start.sh选择 frp 服务端安装即可配置和上面文件上也差不多 六、总结
FRP 服务端在阿里云上配置 FRP 服务端使群晖的服务可以穿透内网公开在公网端口。FRP 客户端在群晖上配置 FRP 客户端将 Gitea 和 GitLab 服务转发到阿里云的相应端口。Nginx 反向代理通过 Nginx 配置反向代理让服务可以通过独立域名访问。
通过以上步骤即可实现对内网服务的外网访问使 Gitea 和 GitLab 可以通过域名在公网中安全地访问。