圖解FRP客戶端+服務端-內網穿透+端口443轉發 Version:v0.43.0
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
說起FRP,肯定很多搞運維的都比較熟悉,畢竟這東西還是不錯的,但有很多人也是因為疫情認識了它;受疫情影響,很多人都在家遠程辦公,因為很多資料和網絡權限問題,有時必須遠程桌面操作。但也有相關的軟件,但有些時候不盡人意吧;
TeamViewer:用了挺長時間,流暢度穩定性都不錯,莫名被檢測到商用以后,找了好多破解版,幾乎無用,無奈放棄。估計很多人也是因為這個放棄的;
向日葵:流暢度很一般,經常會有卡頓的情況,最近不知道是用的人多,流量超標造成的吧!!!
這時候就得FRP上陣了,先來說說FRP;
frp(fast reverse proxy)簡介
frp是fast reverse proxy的縮寫;frp 是一個專注于內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。
frp地址 ? ? ? https://github.com/fatedier/frp/releases
frp ?支持支持多個平臺 ? Linux ?windows ? arm ? 則需下載。
frp 主要由 客戶端(frpc) 和 服務端(frps) 組成,服務端通常部署在具有公網 IP 的機器上,客戶端通常部署在需要穿透的內網服務所在的機器上。
可以在 Github 的 Release 頁面中下載到最新版本的客戶端和服務端二進制文件。
圖下案例, 啟動后即可用??公網ip:443 訪問到客戶端局域網內的 210.12服務器的443端口;
frp 筆記
frp 分為server 端 ?和client 端;
server 端
systemd ? #systemd 服務啟動腳本 ? 服務端客戶端都可用
frps ? #服務端啟動腳本
frps.ini #服務端配置文件
frps_full.ini ? # 服務端配置文件樣列
frpc ? ? ?#客戶端啟動腳本
frpc.ini #客戶端端配置文件
frps_full.ini ? # 客戶端配置文件樣列
frp配置文件
1.server端
vim frps.ini
frp基礎配置
bind_addr ? ?? ?服務端監聽地址 ? ? ? ? 0.0.0.0
bind_port ? ? ? ?服務端監聽端口 ? ? ? ?7000
bind_udp_port ? ?服務端監聽 UDP 端口 ? ? ?0
kcp_bind_port ? ?服務端監聽 KCP 協議端口 ? ? 0
proxy_bind_addr ?代理監聽地址
log_file ? ? ? ? ?日志文件地址 ? ? ? ? ? ? /var/log/frp.log
log_level ? ? ? ? ? 日志級別 ? ? ? ? ? ? ? ?trace, debug, info, warn, error(默認info)
log_max_days ? ? ?日志文件保留天數 ? ? ? ? 3
detailed_errors_to_client ?服務端返回詳細錯誤信息給客戶端 ?true
tls_cert_file ? ?TLS 服務端證書文件路徑
tls_key_file ? TLS 服務端密鑰文件路徑
tls_trusted_ca_file ?TLS CA 證書路徑
frp權限驗證
authentication_method ? ?鑒權方式 ? ? ? ? ? ?token (默認token 。oidc)
authenticate_heartbeats ?開啟心跳消息鑒權 ? ? false
token ? ? ? ? ? ? ? ? ? ? ? 鑒權使用的 token 值 ? 客戶端需要設置一樣的值才能鑒權通過
frp管理配置
allow_ports ? ?? ? 允許代理綁定的服務端端口 ? ? 1000-2000,2001,3000-4000
max_pool_count ? ?最大連接池大小 ? ? ? ? ? 5
max_ports_per_client 限制單個客戶端最大同時存在的代理數 ?0(0表示沒有限制)
tls_only ? ? ? ? ? 只接受啟用了 TLS 的客戶端連接 ? ? false
frp監控
dashboard_addr ? ? 啟用 Dashboard 監聽的本地地址 ?0.0.0.0
dashboard_port ? ? 啟用 Dashboard 監聽的本地端口 ?0
dashboard_user ? ? HTTP BasicAuth 用戶名
dashboard_pwd ? ? HTTP BasicAuth 密碼
enable_prometheus ? ?是否提供 Prometheus 監控接口 ?false ? 需要同時啟用了 Dashboard 才會生效
asserts_dir ? ? 靜態資源目錄 ? ?Dashboard 使用的資源默認打包在二進制文件中,通過指定此參數使用自定義的靜態資源
frp HTTP & HTTPS
vhost_http_port ? 為 HTTP 類型代理監聽的端口 ?0 ? 啟用后才支持 HTTP 類型的代理,默認不啟用
vhost_https_port ? ?為 HTTPS 類型代理監聽的端口 ?0 ? 啟用后才支持 HTTPS 類型的代理,默認不啟用
vhost_http_timeout ? ?HTTP 類型代理在服務端的 ResponseHeader 超時時間 ?60
subdomain_host ? ? 二級域名后綴
custom_404_page ? ?自定義 404 錯誤頁面地址
frp? TCPMUX
tcpmux_httpconnect_port ? 為 TCPMUX 類型代理監聽的端口 ?0 ? 啟用后才支持 TCPMUX 類型的代理,默認不啟用
client 端??vim frpc.ini
基礎配置
server_addr ? ?連接服務端的地址 ?0.0.0.0
server_port ? ?連接服務端的端口 ?7000
http_proxy ? ? ? ? ?連接服務端使用的代理地址 ? ?格式為 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
log_file ? ? ? ?日志文件地址 ?./frpc.log ? 如果設置為 console,會將日志打印在標準輸出中
log_level ? ? ? ?日志等級 ?info ?trace, debug, info, warn, error
log_max_days ? ?日志文件保留天數 ?3
disable_log_color ?禁用標準輸出中的日志顏色 ?false
pool_count ? ?? ?連接池大小 ?0
user ? ? ? ? ? ?用戶名 ? ?設置此參數后,代理名稱會被修改為 {user}.{proxyName},避免代理名稱和其他用戶沖突
dns_server ? ? ? ?使用 DNS 服務器地址 ? ?默認使用系統配置的 DNS 服務器,指定此參數可以強制替換為自定義的 DNS 服務器地址
login_fail_exit ?第一次登陸失敗后是否退出 ?true
protocol ? ? ? ?連接服務端的通信協議 ?tcp ?tcp, kcp, websocket
tls_enable ? ? ? ?啟用 TLS 協議加密連接 ?false
tls_cert_file ? ?TLS 客戶端證書文件路徑
tls_key_file ? ?TLS 客戶端密鑰文件路徑
tls_trusted_ca_file ? TLS CA 證書路徑
tls_server_name ? ?TLS Server 名稱 ? ?為空則使用 server_addr
heartbeat_interval ? ?向服務端發送心跳包的間隔時間 ?30
heartbeat_timeout ? 和服務端心跳的超時時間 ?90
udp_packet_size ? ?代理 UDP 服務時支持的最大包長度 ?1500 ? 服務端和客戶端的值需要一致
start ? ?? ? ? ? ?指定啟用部分代理 ? ?當配置了較多代理,但是只希望啟用其中部分時可以通過此參數指定,默認為全部啟用
權限驗證
authentication_method ? ? ? ? ? 鑒權方式 ?token ?token, oidc ?需要和服務端一致
authenticate_heartbeats ? ? ? 開啟心跳消息鑒權 ?false ? 需要和服務端一致
authenticate_new_work_conns ? ? 開啟建立工作連接的鑒權 ?false ? 需要和服務端一致
token ? ? ? ? ? ? ? ? ? ? ? ? ? 鑒權使用的 token 值 ? ?需要和服務端設置一樣的值才能鑒權通過
oidc_client_id ? ? ? ? ? ? ? ? ? oidc_client_id
oidc_client_secret ? ? ? ? ? ? ? oidc_client_secret
oidc_audience ? ? ? ? ? ? ? ? ? oidc_audience
oidc_token_endpoint_url ? ? ? oidc_token_endpoint_url
UI
admin_addr ? ? ? ?啟用 AdminUI 監聽的本地地址 ?0.0.0.0
admin_port ? ?啟用 AdminUI 監聽的本地端口 ?0
admin_user ? ? HTTP BasicAuth 用戶名
admin_pwd ? ? HTTP BasicAuth 密碼
asserts_dir ? ?靜態資源目錄
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!