teamview/向日葵 太黑心,莫名其妙檢測商用勸退,實在是不得不脫坑。與其每個月給幾百塊RMB不如花幾十塊錢買臺云服務。自己組建遠程連接環境,使用windows遠程桌面在公司連家里的電腦,安全無后門。
此種方式基本能穿透各種類型的網絡類型了,我們公司用的代理上網,使用這種方式穿透也沒有問題了,就是遠程有使用一點手段,但是穿透完全沒有問題,如果不是使用代理上網,以下的方式完全可以實現跨局域網使用windows遠程連接。
frp基本信息
frp全名Fast Reverse Proxy,是用于提供內網穿透服務的工具,主要用于解決一些內網服務沒有公網ip但是卻需要提供外網訪問的問題。使用frp你可以將內網中的TCP、UDP、HTTP、HTTPS等協議類型的服務發布到公網,并且支持Web服務根據域名進行路由轉發。
frp已經將項目開源至github,想深入了解的朋友可以點擊跳轉地址:github項目地址(frp)
frp使用要求
首先下載frp 所有版本下載地址 https://github.com/fatedier/frp/releases
我下載的地址:https://github.com/fatedier/frp/releases?after=v0.23.2
我下載的是 frp_0.21.0_linux_amd64.tar.gz
解壓后得到10個文件如下:
然后 編輯 vi frps.ini
配置文件內容如下:
[common] #服務器本地IP bind_addr=0.0.0.0 #服務器端口號 bind_port = 7000 token=zhangjun #服務器web管理端口號 dashboard_port = 7500 #服務器用戶名 dashboard_user = admin #服務器密碼 dashboard_pwd = admin |
關于這幾個配置意思 我就不廢話了 直接上中文api地址 :https://github.com/fatedier/frp/blob/master/README_zh.md
那么先執行這個 : chmod +X *.sh
然后后臺執行執行nohup.log ./frps -c ./frps.ini &
然后訪問 http://服務器ip:7500
上面配置的7500端口,使用上面配置的用戶名和密碼 admin/admin
登陸可以看到如下界面
到此處服務器端的配置完成了
接下來配置設置對應的客戶端
同樣在上面的地址下載客戶端 我用的是windows 使用下載的是
同樣解壓,解壓后 只需要里面的兩個文件
如下:
然后修改frpc.ini
修改內容如下:
[common] server_addr = 這個地方是你的外網服務器的ip server_port = 7000 token=zhangjun [test10100] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 10100 |
保存后就可以在命令行使用 frpc.exe -c frpc.ini
看到如下輸出
那么環境就搭建成功了,服務端網頁可以看到
接下來可以直接使用windows遠程桌面連接了
遠程桌面連接的地址 與正常的遠程連接不一樣的地方是 需要在遠程桌面的地址上寫個端口號,這個端口號就是客戶端配置的端口號;例如:
接下來就和正常的遠程桌面連接一樣了
客戶端以上就是客戶端A的配置了
客戶端B的配置就是改一下配置的端口號和名稱就行
如下
[common] server_addr = 這個地方是你的外網服務器的ip server_port = 7000 token=zhangjun [zhangjun2] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 3391 |
這個時候遠程的ip和地址就是 服務器IP:配置的3391端口
依次類推 客戶端C 客戶端D 只需要改一下名字和端口就行了,名字不能重復
下面是詳細說明及解釋:
1、(必須)想要使用frp服務,將內網中的服務發布到公網。你需要先擁有一臺擁有公網ip的網絡設備搭建frp服務端,再在內網需要穿透的設置中搭建frp客戶端服務才能進行穿透;
2、(非必需)你需要擁有一個域名解析到公網的ip地址,才能夠實現web服務的通過域名進行路由轉發的功能。
Frp服務的搭建
搭建frp很簡單,關鍵的步驟只有三步:
1、獲取frp文件;
2、設置frp配置文件,
3、啟動frp服務。(注意frp搭建的的這三步是分為客戶端和服務端的,但是操作基本是一致的。)本教程frp服務的搭建主要介紹frp搭建的主要三步,以及frp服務端和客戶端配置文件內容的解釋說明,以及如何將frp在linux系統中創建systemd服務,進行服務管理。
第一步:獲取frp文件
frp支持linux平臺和windows平臺。參照你的設置的運行平臺下載linux版本的文件或者是windows的。https://github.com/fatedier/frp/releases
一般linux平臺下載的版本為:frp_版本號_linux_amd64.tar.gz,windows平臺下載的版本為:frp_版本號_windows_amd64.zip。
linux版本文件的解壓命令為tar -zxvf 文件名 ;windows版本文件直接右鍵解壓即可。
文件解壓后,一般都含有frps(frp服務端運行文件)、frpc(frp客戶端運行文件)、frps.ini(frp服務端配置文件)、frpc.ini(frp客戶端配置文件),以及frp_full.ini(frp全部配置文件解釋說明和參考。)
第二步:frp配置文件設置
frp配置文件分為服務端和客戶端,想要正常只用frp工具,我們需要對服務端和客戶端的配置文件分別進行設置。
frps.ini(服務端)配置文件解釋說明
[common]
# 服務端控制面板訪問賬號和密碼,不設置則默認admin
#注意以及幾個是我隨便填寫的,請根據自己的實際情況,自行修改。
dashboard_user = user
dashboard_pwd = password
# 客戶端連接令牌
token = access_token
# 路由地址
subdomain_host = frp.x.com
###########下列配置默認即可,無需改動###############
#穿透監聽端口與地址(0.0.0.0表示允許任何地址)
bind_addr = 0.0.0.0
bind_port = 7000
# udp協議監聽端口
bind_udp_port = 7001
#udp協議支持kcp模式。kcp的運行端口,不設置表示禁用。可以與'bind_port'端口一致
kcp_bind_port = 7000
#虛擬主機穿透監聽端口(指http與https的訪問端口)
vhost_http_port = 80
vhost_https_port = 443
#服務端控制面板訪問端口
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# frp日志記錄路徑
log_file = ./frps.log
# 日志記錄級別(trace, debug, info, warn, error)
log_level = info
# 日志記錄滾動天數
log_max_days = 3
# 客戶端與服務端連接心跳檢測
heartbeat_timeout = 90
# 允許客戶端使用的穿透端口,不設置則全部允許
#allow_ports = 1000-100000
# 穿透服務允許的連接數
max_pool_count = 5
# 單個客戶端允許建立的穿透服務,0為不限制
max_ports_per_client = 0
# 連接超時
authentication_timeout = 900
# tcp流多路復用(可以理解為優化傳輸)
tcp_mux = true
frpc.ini(客戶端)配置文件解釋說明
#該配置文件,我做了相關的刪減,只保留了我們最常用到的幾個穿透功能。
#[common為公共配置區域必須存在]
[common]
# 與服務端連接令牌
token = access_token
# 客戶端標識
user = nas
#服務端的訪問地址(可用ip或者域名)。
server_addr = 1.1.1.1
####################此處為common的默認配置區域無需修改###################
#服務端用于穿透的端口,與服務端保持一致。
server_port = 7000
# 日志記錄路徑
log_file = ./frpc.log
# 日志記錄級別(trace, debug, info, warn, error)
log_level = info
# 日志記錄滾動天數
log_max_days = 3
# frpc客戶端管理界面
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_passwd = admin
# 連接池
pool_count = 5
# tcp數據流多路復用,默認開啟,服務端客戶端需要保持一致
tcp_mux = true
# 失敗重連
login_fail_exit = true
# 服務端與客戶端通信協議,支持tcp\upd
protocol = tcp
# dns服務選用
# dns_server = 8.8.8.8
#客戶端向服務端心跳檢查間隔與超時時間
heartbeat_interval = 10
heartbeat_timeout = 90
##############以上為客戶端服務的公共信息配置區域############
###############具體的穿透服務功能啟用(表示你要使用frp的那個功能)##############
[ssh]
#穿透類型
type = tcp
#需穿透服務本地訪問地址
local_ip = 127.0.0.1
#需穿透服務本地訪問端口
local_port = 22
#是否使用通訊加密,默認false
use_encryption = false
#是否使用通訊壓縮,默認false
use_compression = false
#穿透后外網訪問端口。
remote_port = 6001
[dns]
type = udp
local_ip = 114.114.114.114
local_port = 53
remote_port = 6002
use_encryption = false
use_compression = false
#http或者https模式主要針對于虛擬主機,訪問的取決于frps.ini文件中的vhost_http_port設置
[web01]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
#虛擬主機訪問賬戶密碼設置,如果不設置的話。自己通過地址即可訪問。
http_user = admin
http_pwd = admin
# if domain for frps is frps.com, then you can access [web01] proxy by URL http://test.frps.com
#如果你的frps域名是yourdomain.com,那么你可以通過web01.yourdomain.com 來訪問web01這個穿透服務。
subdomain = web01
#自己定義域名
custom_domains = yourdomain.com
# locations is only available for http type
locations = /,/pic
# http重定向地址
host_header_rewrite = example.com
# http請求文件頭
header_X-From-Where = frp
[web02]
type = https
local_ip = 127.0.0.1
local_port = 8000
use_encryption = false
use_compression = false
subdomain = web02
custom_domains = web02.yourdomain.com
[plugin_static_file]
type = tcp
remote_port = 6006
plugin = static_file
plugin_local_path = /var/www/blog
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc
第三步:啟動服務
linux環境下啟動服務,需要先把運行文件添加可執行權限。例如我的文件實在root文件夾中,我需要搭建frp服務端,那么待設置好服務端配置文件(frps.ini)后執行以下命令即可。
cd /root
chmod +x frps
nohup ./frps -c ./frps.ini &
執行成功后,會顯示frp的進程號碼。你也可以通過命令來查看frps運行的進程編號。
ps -e | grep frps
在windows環境下則是以管理員身份運行cmd命令提示符。進入相應的目錄后,運行命令即可。
frps -c frps.ini &
關于frp管理的優化設置
debian8.0,或者是centos7.0以上的版本,服務都是基于systemd的方式進行管理的。frp通過設置后也可以實現systemd的方式進行管理,這樣我們就可以通過systemctl命令來進行服務的統一管理,同時通過這樣的設置也可以將frp服務加入開機自啟動。
1、將frp設置成linux系統的服務,基于systemd方式管理
# 編寫 frp service 文件,以 centos7 為例
vim /usr/lib/systemd/system/frps.service
# 內容如下
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
#此處的路勁地址根據自己的實際放置的地址進行修改
ExecStart=/root/frp/frps -c /root/frp/frps.ini
Restart=always
RestartSec=1min
[Install]
WantedBy=multi-user.target
2、將frp設置成開機自啟動
systemctl enable frps
systemctl restart frps
以上就是關于frp內網穿透的基本教程了,搭建可以嘗試照著教程搭建一下,如果還有不懂的地方歡迎加入維簡網交流群進行交流。
本文為張軍原創文章,轉載無需和我聯系,但請注明來自張軍的軍軍小站,個人博客http://m.eyofj.com
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
