网站搭建
技术教程
ZAP-Hosting Gameserver and Webhosting

VPS NAT使用frp建站,内网穿透

一、安装 FRP(如果还未安装)

wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
cd frp_0.61.1_linux_amd64
二、配置 FRP、 配置服务端(frps)

FRP 主要包括两个组件:frps(服务端)和 frpc(客户端)。你需要根据你的场景配置相应的文件。

配置服务端(frps)

在服务端(例如你的 VPS)上,frp_0.61.1_linux_amd64目录下创建并配置 frps.ini 文件。

[common]
bind_addr = 0.0.0.0      # 监听所有 IP 地址,确保外部可以访问
bind_port = 12400         # 服务器监听的端口,可以设置为其他端口

# 配置 HTTP 和 HTTPS 端口
vhost_http_port = 80      # HTTP 端口
vhost_https_port = 443    # HTTPS 端口

# 可以设置认证方法和 token(如果需要)
auth_token = Frps1010     # 和 frpc 端配置的 token 一致

在 Linux 系统上启动:

启动 FRPS 服务

# 使用 frps.ini 配置文件启动 FRP 服务
./frps -c ./frps.ini

使 FRPS 在后台运行

如果你希望 FRPS 在后台运行,可以使用 nohup 或将其作为服务来管理。比如:

nohup ./frps -c ./frps.ini &

或者使用 systemd 来将其设置为开机自启服务(如果你使用的是 Linux 系统)。

创建 systemd 服务文件(Linux)

创建服务文件

sudo nano /etc/systemd/system/frps.service

写入以下内容:

[Unit]
Description=FRP Server
After=network.target

[Service]
ExecStart=/path/to/frps -c /path/to/frps.ini
Restart=on-failure
User=nobody
Group=nogroup

[Install]
WantedBy=multi-user.target

/path/to/frps/path/to/frps.ini 替换为你实际的路径。

启动并使 FRPS 开机自启

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启动 frps 服务
sudo systemctl start frps

# 设置开机自启
sudo systemctl enable frps

在 Windows 系统上启动:

在 Windows 上,只需双击运行 frps.exe,或者在命令行中进入 FRP 解压目录后执行:

frps.exe -c frps.ini

4. 检查服务是否正常运行

启动后,你可以通过以下命令检查 frps 服务是否正常运行。

在 Linux 系统上:

# 查看 frps 服务状态
ps aux | grep frps

# 查看端口是否监听
netstat -tulnp | grep 12400

如果看到 frps 在监听端口并正常运行,说明启动成功。

在 Windows 系统上:

在任务管理器中查找 frps.exe 进程,或者使用 netstat 命令检查端口:

netstat -ano | findstr :12400

5. 日志检查

如果 frps 启动失败,检查日志以获取更多的错误信息。你可以在 frps.ini 文件中配置日志路径。

[common]
log_file = ./frps.log
log_level = info
log_max_days = 7

然后查看 frps.log 文件获取更多的调试信息。

三、创建frpc和配置frpc

frpc.ini 文件是 FRP 客户端的配置文件,通常会与 FRP 客户端的执行文件(frpc)一起放在同一个目录下。

如果你按照上述步骤下载并解压 FRP 客户端文件,那么 frpc.ini 应该会在解压后的文件夹内。如果你没有找到该文件,可以再解压目录下创建一个新的 frpc.ini 配置文件。

如果你想为多个域名配置不同的代理,只需在 frpc.ini 文件中为每个代理添加一个新的 customDomains 字段。以下是更新后的配置,包含了两个域名 www.aghhhb.decc.tu.com,并且为每个域名分别配置了 httphttps 代理。

serverAddr = "10.10.2.1"
serverPort = 12400
auth.method = "token"
auth.token = "Frps1010"    

[[proxies]]
name = "web685_https_b"    #自己定义名称,#换名字重复会报错  
type = "https"
localIP = "127.0.0.1"      #不需要改
localPort = 443            #可改网站的端口
customDomains = ["www.aghhhb.de", "cc.dd.com"]         #自己网站的域名

[[proxies]]
name = "web685_http_b"      #自己定义名称,换名字重复会报错   
type = "http"
localIP = "127.0.0.1"       #不需要改
localPort = 80              #不改动网站申请证书端口
customDomains = ["www.aghb.de", "cc.dd.com"]         #自己网站的域名

配置说明:

  • web685_https_b:这是 https 配置,监听本地的 443 端口。customDomains 列表包含 www.aghb.decc.dd.com,即这两个域名都通过 https 访问。
  • web685_http_b:这是 http 配置,监听本地的 80 端口。customDomains 列表同样包含 www.aghb.decc.dd.com,即这两个域名都通过 http 访问。

注意事项:

  1. 同一个代理配置多个域名:你可以在 customDomains 中列出多个域名,这样同一个端口(80443)就可以同时处理多个域名的请求。
  2. 服务器端的设置:确保你的 frps.ini 服务器端配置也支持这些域名,并正确转发请求到相应的本地端口。

启动FRP 客户端

配置好 frpc.ini 后,启动、重启 FRP 客户端:

cd frp_0.61.1_linux_amd64
./frpc -c frpc.ini

二、在 Linux 上使 FRPC 在后台运行

在 Linux 系统中,通常使用 nohupsystemd 来使 FRPC 在后台运行。

方法 1: 使用 nohup 命令

nohup 是一个非常常用的 Linux 命令,它可以让程序在后台运行,并且在你关闭终端后仍然保持运行。

  1. 在终端中输入以下命令:
nohup ./frpc -c ./frpc.ini &
  • nohup 命令会让 FRPC 在后台运行,即使你关闭终端窗口,它也会继续运行。
  • & 符号表示将命令放入后台运行。
  1. 你可以查看 nohup 输出日志,默认情况下,nohup 会将所有输出写入 nohup.out 文件:
tail -f nohup.out

方法 2: 使用 systemd 创建开机自启服务(推荐)

如果你希望 FRPC 在后台自动启动,并且能够在系统崩溃后重启,可以将其配置为 systemd 服务。这样,它将在系统启动时自动运行。以下是配置 systemd 自动启动 FRP 的步骤:

步骤 1:创建 frpc 的 systemd 服务文件

使用文本编辑器创建一个新的 systemd 服务文件。我们将文件命名为 frpc.service,并将其放在 /etc/systemd/system/ 目录下:

sudo nano /etc/systemd/system/frpc.service

2.在文件中添加以下内容:

[Unit]
Description=FRP Client
After=network.target

[Service]
ExecStart=/root/frp_0.61.1_linux_amd64/frpc -c /root/frp_0.61.1_linux_amd64/frpc.ini
WorkingDirectory=/root/frp_0.61.1_linux_amd64
Restart=always
User=root
RestartSec=3

[Install]
WantedBy=multi-user.target

解释:

  • ExecStart:指向 FRPC 可执行文件的位置和配置文件 frpc.ini 的路径。你需要根据你实际安装的路径进行修改。
  • WorkingDirectory:设置工作目录为 FRPC 的安装目录。
  • Restart=always:如果 FRPC 停止,systemd 会自动重启它。
  • RestartSec=3:重启时延迟 3 秒。
  • WantedBy=multi-user.target:确保 FRPC 在系统的多用户模式下启动。

步骤 2:重新加载 systemd 服务

保存并退出编辑器后,需要重新加载 systemd 服务管理器,以便它识别新的服务配置:

sudo systemctl daemon-reload

步骤 3:启动并启用 FRPC 服务

  1. 启动 FRPC 服务:
sudo systemctl start frpc

2.设置 FRPC 服务为开机自启动:

sudo systemctl enable frpc

这会确保每次服务器重启时,FRPC 会自动启动。

步骤 4:检查服务状态

你可以使用以下命令检查 FRPC 服务的状态:

sudo systemctl status frpc

如果 FRPC 正常运行,输出会类似于以下内容:

● frpc.service - FRP Client
   Loaded: loaded (/etc/systemd/system/frpc.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2025-01-20 10:00:00 UTC; 2min ago
 Main PID: 97413 (frpc)
    Tasks: 10 (limit: 4915)
   Memory: 5.0M
   CGroup: /system.slice/frpc.service
           └─97413 /root/frp_0.61.1_linux_amd64/frpc -c /root/frp_0.61.1_linux_amd64/frpc.ini

步骤 5:重启系统测试

你可以重启服务器测试 FRPC 是否会自动启动:

sudo reboot

重启后,你可以再次使用 systemctl status frpc 命令查看 FRPC 是否已成功启动。

总结

通过创建 frpc.service 的 systemd 服务文件,你就可以确保 FRP 在服务器重启后自动启动,且可以方便地管理它。这样 FRP 就会像其他服务一样,在后台运行并自动启动,无需手动干预。

6、彻底取消 FRPC 服务的开机自启动并删除相关配置,可以按照以下步骤操作:

1. 删除 systemd 服务文件

由于 FRPC 服务是通过 systemd 管理的,你可以删除其服务文件以彻底取消开机自启动:

sudo rm /etc/systemd/system/frpc.service

2. 重新加载 systemd 配置

删除服务文件后,重新加载 systemd 配置以生效:

sudo systemctl daemon-reload

3. 检查服务状态

确认 FRPC 服务已被彻底移除:

sudo systemctl status frpc

如果服务文件已删除,你会看到类似以下的输出:

Unit frpc.service could not be found.

如果你只是希望停止 FRPC 服务并禁用开机自启动(无需删除服务文件):

  1. 停止 FRPC 服务
    如果 FRPC 服务仍在运行,可以手动停止:
sudo systemctl stop frpc

2.禁用开机自启动
禁用 FRPC 服务的开机自启动:

sudo systemctl disable frpc

检查服务状态
确认 FRPC 服务的开机自启动已禁用:

sudo systemctl status frpc

输出中应显示 disabled,例如:

Loaded: loaded (/etc/systemd/system/frpc.service; disabled; preset: enabled)
Active: inactive (dead)

总结:

  • 如果你想彻底删除 FRPC 服务的开机自启动配置,可以删除 /etc/systemd/system/frpc.service 文件并重新加载 systemd
  • 如果你只是想禁用开机自启动而不删除服务文件,可以使用 sudo systemctl disable frpc
  • 无论哪种方式,FRPC 服务都不会在系统启动时自动运行。

七. 在 Windows 上使 FRPC 在后台运行

如果你使用的是 Windows 系统,可以通过两种方式让 FRPC 在后台运行。

方法 1: 使用命令行启动 FRPC

  1. 在命令行中进入 FRPC 的目录,运行以下命令:
frpc.exe -c frpc.ini
  1. 要让 FRPC 在后台运行,你可以使用 Windows 内建的 start 命令启动它:
start /b frpc.exe -c frpc.ini

这样,FRPC 会在后台运行,并且不显示窗口。

方法 2: 创建 Windows 服务(使用 NSSM)

如果你希望将 FRPC 设置为 Windows 服务(可以在开机时自动启动),可以使用一个叫做 NSSM(Non-Sucking Service Manager)的工具。

  1. 下载 NSSM 工具:NSSM 下载页面
  2. 使用以下命令将 FRPC 注册为服务:
nssm install frpc "C:\path\to\frpc.exe" "-c C:\path\to\frpc.ini"
  1. 启动 FRPC 服务:
nssm start frpc
  1. 设置开机自启:
nssm set frpc Start SERVICE_AUTO_START

总结

  • Linux 系统:你可以使用 nohupsystemd 来使 FRPC 在后台运行,systemd 是最推荐的方式,因为它可以管理进程、处理崩溃重启等。
  • Windows 系统:你可以通过 start 命令让 FRPC 在后台运行,或者使用 NSSM 将其作为 Windows 服务管理。

选择适合你的操作系统和需求的方法来使 FRPC 在后台运行。

赞(0) 打赏
未经允许不得转载:科技宝典 » VPS NAT使用frp建站,内网穿透