> For AI agents: the complete documentation index is available at https://www.tteam.icu/llms.txt, the full documentation bundle is available at https://www.tteam.icu/llms-full.txt.

# frp内网穿透

[开源地址](https://github.com/fatedier/frp)

FRP 适合把内网中的 SSH、Web 或其他 TCP 服务暴露到公网服务器上。网页服务不一定要走 HTTP 类型代理，也可以先用 TCP 透传，再由公网机器上的 Nginx 或其他网关统一处理域名和证书。

:::tip
不要轻易直接使用 HTTP 类型代理。它需要额外配置域名、端口和安全策略；如果只是临时访问或内部服务，TCP 方式通常更直观。
:::

## frps

`frps` 运行在有公网 IP 的服务器上，负责接收客户端连接并监听对外端口。

### 启动

```sh file="./frp/frps/setup.sh" title="setup.sh"
#!/bin/bash

# snowdreamtech/frps

docker kill frps
docker rm frps

docker run -d \
--name frps \
--restart=always \
--net host \
-v $(pwd)/frps.ini:/opt/frp/frps.ini \
fatedier/frps:v0.68.0 -c /opt/frp/frps.ini

```

### 配置

```ini file="./frp/frps/frps.ini" title="frps.ini"
[common]
# 监听端口
bind_port = 44052
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = xxx
dashboard_pwd = xxx
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081


# 身份验证
token = 1ym7qY

```

## frpc

`frpc` 运行在内网机器上，负责把本地端口注册到 `frps`。配置中需要保持服务端地址、端口和 token 与 `frps` 一致。

### 启动

```sh file="./frp/frpc/setup.sh" title="setup.sh"
#!/bin/bash

docker kill frpc
docker rm frpc

docker run -d \
--name frpc \
--restart=always \
--network host \
-v $(pwd)/frpc.ini:/etc/frp/frpc.ini \
fatedier/frpc:v0.68.0 -c /etc/frp/frpc.ini

```

### 配置

```ini file="./frp/frpc/frpc.ini" title="frpc.ini"
[common]
# server_addr为FRPS服务器IP地址
server_addr = xx.xx.xx.xx
# server_port为服务端监听端口，bind_port
server_port = 44052
# 身份验证
token = 1ym


# [ssh] 为服务名称，下方此处设置为，访问frp服务段的2288端口时，等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型，此处为tcp
# local_ip 为中转客户端实际访问的IP
# local_port 为目标端口
# remote_port 为远程端口

[ssh-pvelinux]
type = tcp
local_ip = 192.168.1.112
local_port = 22
remote_port = 15001

[jenkins]
type = http
local_ip = 192.168.1.112
local_port = 8081
remote_port = 8082

```
