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

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