補(bǔ)坑來了车胡,上次寫過cpolar實(shí)現(xiàn)免費(fèi)的內(nèi)網(wǎng)穿透,但是最大的問題在于免費(fèi)版不能用自己的域名照瘾,畢竟是第三方提供的服務(wù)器匈棘,免費(fèi)的都有限制,剛好自己有一臺(tái)阿里云的云服務(wù)器析命,所以比較完美的方法是用開源的frp自己搭建一個(gè)內(nèi)網(wǎng)穿透服務(wù)器主卫,這樣就可以用阿里云的公網(wǎng)ip綁定自己的域名了逃默。
或許有人會(huì)問,既然已經(jīng)有了公網(wǎng)服務(wù)器為啥還要內(nèi)網(wǎng)穿透簇搅?畢竟公網(wǎng)服務(wù)器都比較貴啊完域,樓主的阿里云服務(wù)器一年將近700塊,才2g內(nèi)存瘩将,40g存儲(chǔ)吟税,如果把想要跑的服務(wù)都跑在上面,很快就熬不住了姿现,不如就拿來做內(nèi)網(wǎng)穿透服務(wù)器肠仪,就起個(gè)轉(zhuǎn)發(fā)功能,自己家里買個(gè)樹莓派建钥,安裝linux系統(tǒng)藤韵,就可以跑各種東西了,也不用擔(dān)心存儲(chǔ)的問題熊经。
Frp是一款流行的跨平臺(tái)開源免費(fèi)內(nèi)網(wǎng)穿透反向代理應(yīng)用,支持 Windows欲险、macOS與 Linux镐依,支持 TCP、UDP 協(xié)議天试,支持http 和 https 協(xié)議槐壳,在公網(wǎng)服務(wù)器安裝一個(gè)server端,內(nèi)網(wǎng)服務(wù)器安裝一個(gè)客戶端喜每,起到一個(gè)中轉(zhuǎn)轉(zhuǎn)發(fā)的作用务唐,從而實(shí)現(xiàn)內(nèi)網(wǎng)暴露到外網(wǎng),實(shí)際就是一個(gè)反向代理轉(zhuǎn)發(fā)器带兜。
服務(wù)器端安裝配置 Frp
FRP 使用 Go 語言開發(fā)枫笛,可以支持 Windows、Linux刚照、macOS刑巧、ARM 等多平臺(tái)部署。FRP 安裝非常容易无畔,只需下載對(duì)應(yīng)系統(tǒng)平臺(tái)的軟件包并解壓就可用了啊楚。這里以 Linux 系統(tǒng)為例:
export FRP_VERSION=0.32.1
sudo mkdir -p /etc/frp
cd /etc/frp
sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz"
sudo tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz
sudo mv frp_${FRP_VERSION}_linux_amd64/* /etc/frp
截止寫這篇文章為止,github上的最新版本是0.32.1浑彰,如果以后出了更新的版本只要改一下上面的版本號(hào)就行了恭理,可以去https://github.com/fatedier/frp/查看最新版本信息。
FRP 默認(rèn)提供了 2 個(gè)服務(wù)端配置文件郭变,一個(gè)是簡(jiǎn)化版的 frps.ini颜价,另一個(gè)是完整版的 frps_full.ini薄风。初學(xué)者只需用簡(jiǎn)版配置即可,在簡(jiǎn)版 frps.ini 配置文件里拍嵌,默認(rèn)設(shè)置了監(jiān)聽端口為 7000遭赂,可以按需修改它。
需要將服務(wù)器的系統(tǒng)防火墻安全組放行横辆,設(shè)置 7000
或修改過的對(duì)應(yīng)端口的「允許入站和出站」撇他,否則會(huì)一直連接不上的哦!1吩椤困肩!這個(gè)切記!脆侮!
啟動(dòng) FRP 服務(wù)端(非后臺(tái)啟動(dòng)锌畸,未配置開機(jī)自啟的情況下)
./frps -c ./frps.ini
如服務(wù)器使用 Win 系統(tǒng),假設(shè)解壓到 c:\frp 文件夾靖避,那么只需這樣啟動(dòng):
c:\frp\frps.exe -c c:\frp\frps.exe
當(dāng)然潭枣,這樣的啟動(dòng)一般測(cè)試可以,生產(chǎn)環(huán)境多數(shù)為后臺(tái)啟動(dòng)幻捏,需要配置后臺(tái)運(yùn)行和開機(jī)自啟
使用systemctl配置后臺(tái)運(yùn)行和開機(jī)自啟
sudo vim /lib/systemd/system/frps.service
在frps.service里寫入以下內(nèi)容
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#啟動(dòng)服務(wù)的命令(此處寫你的frps的實(shí)際安裝目錄)
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
啟動(dòng)frps
sudo systemctl start frps
#打開自啟動(dòng)
sudo systemctl enable frps
如果要重啟應(yīng)用盆犁,sudo systemctl restart frps
如果要停止應(yīng)用,sudo systemctl stop frps
如果要查看應(yīng)用的日志篡九,sudo systemctl status frps
如果啟動(dòng)時(shí)7000端口被占用
#查看端口號(hào)
netstat -anp|grep 7000
或
#查看端口號(hào)
lsof -i:7000
或
#查看程序進(jìn)程
ps -ef|grep frps
得到進(jìn)程id(pid)之后谐岁,殺掉進(jìn)程
kill -9 進(jìn)程號(hào)
至此服務(wù)端安裝完畢并已經(jīng)啟動(dòng)
配置frp客戶端(內(nèi)網(wǎng)機(jī)器上)
可以將 Frp 客戶端安裝在內(nèi)網(wǎng)的 Windows 電腦、Linux 設(shè)備 比如樹莓派 或者 NAS榛臼,甚至部分路由器等設(shè)備上伊佃。Linux 客戶端的安裝和啟動(dòng)與服務(wù)器端沒有太多區(qū)別,只是對(duì)應(yīng)運(yùn)行程序是 frpc 而不是 frps沛善。
如果是linux設(shè)置航揉,安裝和設(shè)置重啟過程這里就省略了,和上面一樣的路呜,如果是windows電腦迷捧,F(xiàn)rp 是綠色程序,下載軟件包回來解壓后胀葱,啟動(dòng) frpc.exe 即可漠秋。
在啟動(dòng)前,我們需要先修改配置文件frpc.ini
比如服務(wù)器的公網(wǎng)ip是1.2.3.4.5
[common]
server_addr = 1.2.3.4.5
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001
[RDPDEEPIN]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7002
[RDPWINDOWS]
type = tcp
local_ip = 192.168.0.109
local_port = 3389
remote_port = 7004
[TOMCAT]
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 7003
如上抵屿,中括號(hào)里面的文字是標(biāo)識(shí)庆锦,可以自定義,第一個(gè)server-port = 7000
是服務(wù)器上的server端端口轧葛。
這里配置了四個(gè)應(yīng)用搂抒,分別是
1.ssh遠(yuǎn)程登錄22端口艇搀,映射公網(wǎng)的7001;
2.rdp協(xié)議的deepin桌面連接3389端口求晶,映射公網(wǎng)的7002焰雕;
3.rdp協(xié)議的內(nèi)網(wǎng)ip為192.168.0.109的windows3389端口,映射公網(wǎng)的7004芳杏;
4.tomcat應(yīng)用矩屁,8081端口映射公網(wǎng)的7003
以上還可以配置更多端口,上面的7001到7004都要在服務(wù)器安全組放行
啟動(dòng)frp客戶端
linux和上面寫的服務(wù)端啟動(dòng)方法一樣
windows假設(shè)已將 Frp 的客戶端解壓縮到 c:\frp 目錄中爵赵,那么啟動(dòng) Frp 客戶端的命令就是:
c:\frp\frpc.exe -c c:\frp\frpc.ini
Linux 啟動(dòng) Frp 客戶端命令(非后臺(tái)啟動(dòng)吝秕,未配置開機(jī)自啟的情況下):
./frpc -c ./frpc.ini
啟動(dòng)之后看到 “start proxy success”字樣就表示啟動(dòng)成功了。
遠(yuǎn)程訪問
公網(wǎng)ip:7001就可以ssh連接到內(nèi)網(wǎng)的deepin
公網(wǎng)ip:7002就可以rdp連接到內(nèi)網(wǎng)的deepin桌面
公網(wǎng)ip:7004就可以rdp連接到內(nèi)網(wǎng)的windows
公網(wǎng)ip或域名:7003就可以訪問到內(nèi)網(wǎng)的tomcat應(yīng)用
這樣真的就完美舒服了空幻。
參考:https://www.iplaysoft.com/frp.html
https://blog.csdn.net/x7418520/article/details/81077652