內網穿透,顧名思義frp搭建也需要分別搭建客戶端和服務端兩部分,其中服務端用於流量轉發,需要有公網ip。部署比較簡單,直接去github release 下載對應的文件就行了,Linux86 64位一般是這個frp_0.38.0_linux_386.tar.gz
。
1、第一步下載壓縮包
2、解壓壓縮包,壓縮包里的文件是真的超級簡潔,果然大佬都是人狠話不多
3、此時你需要一個公網ip,將frp的服務端部署在公網機器上
將壓縮包里的東西放到服務端的/etc/frp 目錄下
frpc_full.ini 和 frps_full.ini是完整的配置文件 一般用不着,看看就行
一般用 frpc.ini 和 frps.ini 就行
# 服務端配置如下
[common] bind_port = 7000 # 服務端綁定的端口 bind_udp_port = 5999 # 儀表盤訪問的端口 dashboard_port = 6001 # dashboard 用戶名密碼,默認都為 admin dashboard_user = dxvb dashboard_pwd = vbd
#將systemd下面frps.service 已送到服務器system文件下 #修改文件內容 [Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=nobody Restart=on-failure RestartSec=5s ExecStart=/etc/frp/frps -c /etc/frp/frps.ini LimitNOFILE=1048576 [Install] WantedBy=multi-user.target
# 此時啟動會報錯,需要給frps可執行權限 chmod +x frps # 查看狀態 systemctl status frps.service # 設置開機自啟 systemctl enable frps.service
# 服務器別忘了防火牆和安全策略組放行
# 自此服務端的配置就結束了 # 接下來配置客戶端的 # 這里我的客戶端就拿一台虛擬機來用
4、配置客戶端
# 開始的步驟跟上面一樣把文件拖到服務器的etc文件夾下 # 修改配置文件 frpc.ini
[common]
server_addr = 47.97.223.15 # 這里是你公網ip地址
server_port = 7000 #這里是你之前設置的綁定端口
[ssh-6002]
type = tcp
local_ip = 127.0.0.1
local_port = 22 # 映射到本地的哪個端口
remote_port = 6002 #這個是你遠程的時候鏈接的端口
# 同樣復制frpc.service到system文件夾
# 修改配置
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
# 賦予可執行權限chmod +x frpc
# 啟動和設置開機自啟
systemctl start frpc.service
systemctl enable frpc.service
5、配置加密壓縮
# 此處添加了加密壓縮這兩個功能,默認是不開啟的,根據介紹,壓縮算法使用的是 snappy # 必須放在相關協議下面 [ssh-6002] type = tcp local_ip = 127.0.0.1 local_port = 22 # 映射到本地的哪個端口 remote_port = 6002 #這個是你遠程的時候鏈接的端口 use_encryption = true # 啟用加密 [通信內容加密傳輸,有效防止流量被攔截] use_compression = true # 啟用壓縮 [傳輸內容進行壓縮,有效減小傳輸的網絡流量,加快流量轉發速度,但會額外消耗一些CPU資源]
6、配置通過frp訪問客戶端文件
[common] server_addr = 47.97.23.15 server_port = 7000 [ssh-6002] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6002 [test_static_file] type = tcp local_ip = 127.0.0.1 remote_port = 6003 plugin = static_file # 要對外暴露的文件目錄 plugin_local_path = /tmp # 用戶訪問 URL 中會被去除的前綴,保留的內容即為要訪問的文件路徑 plugin_strip_prefix = static plugin_http_user = lj plugin_http_passwd = jlj
注意:被訪問的文件需要有相關的讀取權限,需要特別指定chmod +x 或者 777 應該都可以 否則會報403錯誤
通過 http://47.97.23.15:6003/static/test.py 就可以訪問指定文件了