文章目錄
- 1、FRP 的作用
- 2、準備環境
- 3、搭建 FRP
- 3.1、服務端
- 3.1.1、服務端搭建
- 3.1.2、服務端檔案配置
- 3.1.3、服務端啟動
- 3.2、客戶端
- 3.1.1、客戶端搭建
- 3.1.2、客戶端檔案配置
- 3.1.3、客戶端啟動
- 4、知識補充
- 4.1、'>/dev/null 2>&1' 是什么意思?
1、FRP 的作用
- 利用處于內網或防火墻后的機器,對外網環境提供
http或https服務, - 對于
http,https服務支持基于域名的虛擬主機,支持自定義域名系結,使多個域名可以共用一個 80 埠, - 利用處于內網或防火墻后的機器,對外網環境提供
tcp和udp服務,例如在家里通過ssh訪問處于公司內網環境內的主機,
2、準備環境
(1)實作功能
- 外網通過ssh訪問內網機器
- 自定義系結域名訪問內網web服務
(2)配置前準備
- 公網服務器1臺,這里準備了阿里云的服務器,
- 內網服務器1臺(我這里演示的是
linux環境,win10上面vmware15安裝的centos7) - 公網服務器系結域名1個(若需要自定義系結域名訪問內網
web服務,否則可以不用) - 內網服務器部署一個
web服務,可以用tomcat模擬,這里就不演示了
3、搭建 FRP
? 公網服務器與內網服務器都需要下載 frp 進行安裝,這里以 frp_0.34.1_linux_amd64.tar.gz 下載為例,
- 下載地址:https://github.com/fatedier/frp/releases
- 開發檔案:https://gofrp.org/docs/
3.1、服務端
服務端:這里表示的是阿里云的服務器
3.1.1、服務端搭建
# 1.創建檔案夾(看需求)
[topcloud@alihadoop opt]$ sudo mkdir software
# 2.更改檔案夾所屬用戶和組(看需求)
[topcloud@alihadoop opt]$ sudo chown topcloud:topcloud software/
# 3.下載 FRP
[topcloud@alihadoop software]$ wget https://github.91chifun.workers.dev//https://github.com/fatedier
/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz
# 4.查看是否下載完成
[topcloud@alihadoop software]$ ls
frp_0.34.1_linux_amd64.tar.gz
# 5.解壓 frp 檔案
[topcloud@alihadoop software]$ tar -zxvf frp_0.34.1_linux_amd64.tar.gz
# 6.移動檔案夾
[topcloud@alihadoop software]$ mv frp_0.34.1_linux_amd64 /opt/module/frp
# 7.查看 frp 檔案
# frps:服務端所需要的
# frpc:客戶端所需要的
[topcloud@alihadoop software]$ ll /opt/module/frp/
total 22608
-rwxrwxr-x 1 topcloud topcloud 9908224 Sep 30 15:38 frpc
-rw-rw-r-- 1 topcloud topcloud 7928 Sep 30 15:44 frpc_full.ini
-rw-rw-r-- 1 topcloud topcloud 126 Sep 30 15:44 frpc.ini
-rwxrwxr-x 1 topcloud topcloud 13205504 Sep 30 15:38 frps
-rw-rw-r-- 1 topcloud topcloud 4928 Sep 30 15:44 frps_full.ini
-rw-rw-r-- 1 topcloud topcloud 26 Sep 30 15:44 frps.ini
-rw-rw-r-- 1 topcloud topcloud 11358 Sep 30 15:44 LICENSE
drwxrwxr-x 2 topcloud topcloud 88 Sep 30 15:44 systemd
# 8.洗掉客戶端的檔案(可以不刪,主要是為了避免操作時修改錯了檔案)
[topcloud@alihadoop frp]$ rm -rf frpc*
# 9.查看是否洗掉了
[topcloud@alihadoop frp]$ ll
total 12920
-rwxrwxr-x 1 topcloud topcloud 13205504 Sep 30 15:38 frps
-rw-rw-r-- 1 topcloud topcloud 4928 Sep 30 15:44 frps_full.ini
-rw-rw-r-- 1 topcloud topcloud 26 Sep 30 15:44 frps.ini
-rw-rw-r-- 1 topcloud topcloud 11358 Sep 30 15:44 LICENSE
drwxrwxr-x 2 topcloud topcloud 88 Sep 30 15:44 systemd
3.1.2、服務端檔案配置
[common]
#與客戶端系結的進行通信的埠
bind_port = 7000
#訪問客戶端web服務自定義的埠號
vhost_http_port = 6081
3.1.3、服務端啟動
- 前臺啟動方式(推薦后臺啟動方式)
[root@alihadoop frp]# ./frps -c ./frps.ini
- 后臺啟動方式
# 進入 frp 所在的目錄,然后使用以下命令
# nohup 和 & 常一起使用,"nohup 命令 &":用于后端啟動
[root@alihadoop frp]# nohup ./frps -c ./frps.ini >/dev/null 2>&1 &
[1] 1363
- 服務端啟動查看
[root@alihadoop frp]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1029/systemd-resolv
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1067/sshd
tcp6 0 0 :::5355 :::* LISTEN 1029/systemd-resolv
tcp6 0 0 :::7000 :::* LISTEN 1363/./frps
tcp6 0 0 :::6081 :::* LISTEN 1363/./frps
3.2、客戶端
客戶端:這里表示的是內網服務器
3.1.1、客戶端搭建
# 前面步驟與服務端搭建一致
# 8.洗掉服務端的檔案(可以不刪,主要是為了避免操作時修改錯了檔案)
[topcloud@hadoop103 frp]$ rm -rf frps*
# 9.查看是否洗掉了
[topcloud@hadoop103 frp]$ ll
total 12920
-rwxrwxr-x 1 topcloud topcloud 13205504 Sep 30 15:38 frpc
-rw-rw-r-- 1 topcloud topcloud 4928 Sep 30 15:44 frpc_full.ini
-rw-rw-r-- 1 topcloud topcloud 26 Sep 30 15:44 frpc.ini
-rw-rw-r-- 1 topcloud topcloud 11358 Sep 30 15:44 LICENSE
drwxrwxr-x 2 topcloud topcloud 88 Sep 30 15:44 systemd
3.1.2、客戶端檔案配置
[common]
#公網服務器ip
server_addr = 47.114.110.230
#與服務端bind_port一致
server_port = 7000
[ssh]
#連接協議
type = tcp
#內網服務器ip
local_ip = 192.168.10.102
#ssh默認埠號,代理服務器的埠
local_port = 22
#自定義的訪問內部ssh埠號
remote_port = 6102
#公網訪問內部web服務器以http方式
[web]
#訪問協議
type = http
#內網web服務的埠號
local_port = 8081
#所系結的公網服務器域名,一級、二級域名都可以
custom_domains = lin.topcloud.com
若想連接到多個局域網內的客戶端,可以配置 [sshXXX],如下所示
#公網通過ssh訪問內部服務器,
[ssh103]
#連接協議
type = tcp
#內網服務器ip
local_ip = 192.168.10.103
#ssh默認埠號,代理服務器的埠
local_port = 22
#自定義的訪問內部ssh埠號
remote_port = 6103
3.1.3、客戶端啟動
- 前臺啟動方式(推薦后臺啟動方式)
[topcloud@hadoop103 frp]# ./frpc -c ./frps.ini
- 后臺啟動方式
# 進入 frp 所在的目錄,然后使用以下命令
# nohup 和 & 常一起使用,用于后端啟動
[topcloud@hadoop103 frp]# nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &
[1] 1688
- 啟動查看
[topcloud@hadoop103 frp]$ ps -ef | grep 1688
topcloud 1688 1600 2 15:44 pts/0 00:00:00 ./frpc -c ./frpc.ini
topcloud 1699 1600 0 15:44 pts/0 00:00:00 grep --color=auto 1688
4、知識補充
4.1、’>/dev/null 2>&1’ 是什么意思?
>:用于重定向/dev/null:是一個黑洞,任何發送的資料都將被丟棄'2':是標準錯誤的檔案描述符>:用于重定向&:是檔案描述符的符號(沒有它,以下 1 將被視為檔案名)1:是標準輸出的檔案描述符
0 15:44 pts/0 00:00:00 grep --color=auto 1688
# 4、知識補充
## 4.1、'>/dev/null 2>&1' 是什么意思?
* `>`:用于重定向
* `/dev/null`:是一個黑洞,任何發送的資料都將被丟棄
* `'2'`:是標準錯誤的檔案描述符
* `>`:用于重定向
* `&`:是檔案描述符的符號(沒有它,以下 1 將被視為檔案名)
* `1`:是標準輸出的檔案描述符
因此 `>/dev/null 2>&1` 將程式的輸出重定向到 `/dev/null`,包括 ==Standard Error== 和 ==Standard Out==,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/180782.html
標籤:其他
