frp は、イントラネットに簡単に侵入し、外部ネットワークにサービスを提供できる高性能リバース プロキシ アプリケーションです。 tcp、http、https およびその他のプロトコル タイプをサポートし、Web サービスはドメイン名に基づいたルーティングと転送をサポートします。
git プロジェクト アドレス: https://github.com/fatedier/frp
1. FRPサーバーをインストールする
実行可能なプログラムはここからダウンロードできます https://github.com/fatedier/frp/releases, 以下では、最新バージョンの Linux amd64 0.34.1 を例として Ubuntu 20.04 にインストールします。
1
2
|
wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_arm64.tar.gz
tar -zvxf frp_0.34.1_linux_arm64.tar.gz
|
解凍後、次のディレクトリ構造が表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
frp_0.34.1_linux_amd64
├── frpc
├── frpc_full.ini
├── frpc.ini
├── frps
├── frps_full.ini
├── frps.ini
├── LICENSE
└── systemd
├── frpc.service
├── frpc@.service
├── frps.service
└── frps@.service
|
インストール手順:
1
2
3
4
|
copy frp_0.34.1_linux_amd64/frpc /usr/bin/
copy frp_0.34.1_linux_amd64/frps /usr/bin/
copy frp_0.34.1_linux_amd64/*.ini /etc/fpr/ #目录/etc/fpr/不存在的话需要创建
copy frp_0.34.1_linux_amd64/systemd/* /etc/systemd/system
|
サーバー側パラメータを構成する
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[common]
bind_port = 10100 #frp监听的端口,用作服务端和客户端通信
vhost_http_port = 10101 #服务端通过此端口接监听和接收公网用户的http请求,如果使用nginx转发,需转发到此端口
token = XXXXXX #client端需要相同的token才能连接
#以下为dashboard端口,通过dashboard可以监控frp状态
dashboard_port = 10109
dashboard_user = admin
dashboard_pwd = XXXXXX
#以下为log设置
log_file = /var/log/frps.log
log_level = debug
log_max_days = 3
|
パラメータと意味の詳細については、frps_full.ini ファイルを参照してください。

開始/停止/再起動/ステータス/自動開始:
1
2
3
4
5
|
systemctl start frps
systemctl stop frps
systemctl restart frps
systemctl status frps
systemctl enable frps
|
2. Nginx 転送の構成 (オプション)
対応するサーバーがすでに Nginx によって占有されている場合、これは nginx 転送を構成することで実現できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
server {
listen 80;
server_name dsphoto.youdomain.com dsfile.youdomian.com frp.yourdomian.com;
location / {
proxy_pass http://127.0.0.1:10101;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZI
P|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google
|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spid
er|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot") {
return 403;
}
}
|
FRPクライアントのインストール
FRPクライアントのインストール設定については、サーバーのインストールを参照してください。プロセスは基本的に同じです。違いは次のとおりです。
クライアントは frpc を使用し、対応する構成ファイルも frpc.ini で、開始されたサービスは frpc です。
クライアント構成ファイルは次のとおりです。
1
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
|
[common]
server_addr = frp.yourdomain.com
server_port = 10100
token = XXXXXX #和服务器端一致
log_file = /tmp/frpc.log
log_level = info
log_max_days = 3
tcp_mux = true
protocol = tcp
login_fail_exit = false
user = admin
#DS photo 配置
[DSphoto]
type = http
local_ip = 192.168.68.200 #内网的群晖的IP
local_port = 80
custom_domains = dsphoto.yourdomain.com
#DS file 配置, DS file 需要下面的 [DSfile]和[DSM]才能登录
[DSfile]
type = http
local_ip = 192.168.68.200 #内网的群晖的IP
local_port = 5000
custom_domains = dsfile.yourdomain.com
[DSM]
type = tcp
local_ip = 192.168.68.200 #内网的群晖的IP
local_port = 5000
remote_port = 5000
#需要远程桌面访问的内网电脑
[MSTC]
type = tcp
local_ip = 192.168.68.168
local_port = 3389
remote_port = 3389
|
###クライアントアクセス


