日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内网穿透配置(FRP)

發(fā)布時間:2024/3/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内网穿透配置(FRP) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

0、內(nèi)網(wǎng)穿透的一般場景

1、內(nèi)網(wǎng)穿透配置

a、frp軟件下載

b、frp 的配置

3、通過 frp 實現(xiàn)遠程連接

4、設(shè)置 frpc / frps 開機啟動的方法

5、設(shè)置frp安全連接的方法


0、內(nèi)網(wǎng)穿透的一般場景

放假回家怎么遠程連接學校實驗室的服務(wù)器?

先分析一波:首先家里的電腦與學校服務(wù)器主機分屬不同的局域網(wǎng)內(nèi)網(wǎng))中,也就是說家里網(wǎng)絡(luò)設(shè)備上層的公網(wǎng)IP不同于學校服務(wù)器上層的公網(wǎng)IP,因此這種情況下就不能僅僅使用 SSH 來遠程連接學校的服務(wù)器了,還需要借助一種叫做內(nèi)網(wǎng)穿透的技術(shù)實現(xiàn)連接。如下面這幅圖。

公網(wǎng)的IP是獨一無二的,而局域網(wǎng)IP在從屬不同公網(wǎng)的前提下可以是一樣的,

內(nèi)網(wǎng)穿透需要第三臺電腦作為中轉(zhuǎn)站,這個中轉(zhuǎn)站需要有一個公網(wǎng)IP,一般來說可以用云服務(wù)器(一般都有公網(wǎng)IP)來作為中轉(zhuǎn)站,可以租用阿里云騰訊云華為云這些平臺中的云服務(wù)器。

1、內(nèi)網(wǎng)穿透配置

使用的系統(tǒng):云服務(wù)器(中轉(zhuǎn)站)和實驗室服務(wù)器(需要向公網(wǎng)暴露IP的本地主機)都是Ubuntu,個人電腦是Windows10.

a、frp軟件下載

這里使用的內(nèi)網(wǎng)穿透的工具是 FRP,GitHub地址:https://github.com/fatedier/frp。下載壓縮包解壓之后會看到下面的內(nèi)容。這里以Windows版的為例,frp?含有 frps 和 frpc?兩種配置文件,frps 是內(nèi)網(wǎng)穿透服務(wù)端service(也就是中轉(zhuǎn)站)的配置文件,作為內(nèi)網(wǎng)穿透的橋梁。frpc 是內(nèi)網(wǎng)穿透中需要向公網(wǎng)暴露IP的本地主機(也就是示例場景中的實驗室服務(wù)器)。

b、frp 的配置

云服務(wù)器(后面稱做A)作為內(nèi)網(wǎng)穿透的橋梁,是內(nèi)網(wǎng)穿透的服務(wù)端,需要使用?frps。實驗室服務(wù)器(后面稱做B)屬于內(nèi)網(wǎng)穿透中的服務(wù)端client,需要使用?frpc。可以通過分別修改?frps.ini?和?frpc.ini?來配置服務(wù)端和客戶端。

A?中需要配置 frps.ini,這個文件原始內(nèi)容如下:

[common] bind_port = 7000

保持默認參數(shù)即可。如果想配置其他內(nèi)容,可以查看 frps_full.ini 文件的內(nèi)容,里面有全部的配置語句。bind_port 表示將 B 與 A 的 7000 端口綁定,具體的端口號可以自定義修改。如果想配置其他內(nèi)容,可以查看frps_full.ini文件的內(nèi)容,里面有全部的配置語句。例如可以加一行 token=xxxx,類似于密鑰,需兩邊都一樣才能訪問:

[common] bind_port = 7000 # 可以加一行 token=xxxx,類似于密碼,需兩邊都對上才能訪問,此時客戶端也需要有同樣的設(shè)置 token=12345

主機 B?需要配置 frpc.ini,這個文件原始內(nèi)容如下:

[common] # server_addr需要改成公網(wǎng)IP地址 server_addr = x.x.x.x server_port = 7000 # 如前所述,可以加一行 token=xxxx,類似于密匙-密鑰對,需兩邊都一樣才能訪問 token=12345 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 # 這個端口可以自由設(shè)置,設(shè)置完后在云服務(wù)器中開啟相應(yīng)的端口即可 remote_port = 6000

server_addr 參數(shù)修改為公網(wǎng)IP,server_port?用于frps與frpc之間交換數(shù)據(jù)的端口,local_port?是ssh服務(wù)端口,remote_port?是在frp服務(wù)器上公開的供外部設(shè)備連接的端口,6000 與 7000 端口的作用可以參照博客開頭的那張圖。接下來需要在云服務(wù)器的端口管理中添加相應(yīng)的端口 6000 和 7000 并開放即可。比如我用的阿里云服務(wù)器,是在“服務(wù)器安全設(shè)置”選項中添加端口的:

3、通過 frp 實現(xiàn)遠程連接

在上述配置都修改完成后,,在云服務(wù)器 A 上執(zhí)行以下指令運行frps端:

./frps -c ./frps.ini

在本地服務(wù)器 B 上執(zhí)行以下指令運行 frpc 端:

./frpc -c ./frpc.ini

然后本地主機就可以使用內(nèi)網(wǎng)穿透來遠程訪問本地服務(wù)器了,在本地主機上執(zhí)行以下指令:

ssh [username]@[ip] -p [port_num]
  • 其中:
  • username 是 B 中的用戶名,后面需要輸入的密碼也是該賬戶的密碼。
  • ip 是 A 的公網(wǎng) ip 地址。這里注意!是 A 的公網(wǎng) ip 地址,不是 B 的!
  • port_num 是 frpc.ini 中設(shè)置的?remote_port 。

例如,要連接 實驗室服務(wù)器(B)中的名為 abc 的用戶,中轉(zhuǎn)賬云服務(wù)器的公網(wǎng)ip為123.0.0.3,remote_port 設(shè)置為 6000,則指令如下:

ssh abc@123.0.0.3 -p 6000

同樣也可以借助?VSCode 中的?Remote-SSH 插件,方便遠程連接后的文件管理,方法可以看這篇博客 :SSH遠程連接實例_地球被支點撬走啦的博客-CSDN博客_ssh連接實例

4、設(shè)置 frpc / frps 開機啟動的方法

如果想讓遠程服務(wù)器 B 與本地服務(wù)器 A 開機自動啟動 frps 和 frpc 這兩個服務(wù),就需要用到 systemd 文件夾中的文件了。內(nèi)容如下:

Linux 系統(tǒng)下的開機啟動需要使用 frps.service frpc.service 這兩個文件,將這兩個文件分別拷貝到對應(yīng)機器的 /lib/systemd/system 文件夾下。需要修改其中的 User?字段,改為當前主機用戶的用戶名,還需要修改 ExecStart?字段,把其中的 frps/frps?的路徑改成你實際 frpc/frpc?所在的絕對路徑。

在云服務(wù)器主機?A 中修改如下:

這里運行 frps 的云服務(wù)器的用戶名為 admin,frps 的路徑為 /home/admin/frp/frps,因此將原始的

frps.service 中的: [Unit] Description=Frp Server Service After=network.target[Service] Type=simple User=nobody Restart=on-failure RestartSec=5s ExecStart=/usr/bin/frps -c /etc/frp/frps.ini LimitNOFILE=1048576[Install] WantedBy=multi-user.target ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

改為:

[Unit] Description=Frp Server Service After=network.target[Service] Type=simple User=admin Restart=on-failure RestartSec=5s ExecStart=/home/admin/frp/frps -c /home/admin/frp/frps.ini LimitNOFILE=1048576[Install] WantedBy=multi-user.target ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

?然后運行 frpc 的本地服務(wù)器 B 中也是類似的設(shè)置:

[Unit] Description=Frp Client Service After=network.target[Service] Type=simple User=nobody Restart=on-failure RestartSec=5s ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini LimitNOFILE=1048576[Install] WantedBy=multi-user.target# 改為:====================================================[Unit] Description=Frp Client Service After=network.target[Service] Type=simple User=ocean Restart=on-failure RestartSec=5s ExecStart=/home/pathto/frp/frpc -c /home/pathto/frp/frpc.ini ExecReload=/home/pathto/frp/frpc reload -c /home/pathto/frp/frpc.ini LimitNOFILE=1048576[Install] WantedBy=multi-user.target

然后在 B 中依次執(zhí)行以下四條指令啟動 service 服務(wù),實現(xiàn)開機啟動:

systemctl daemon-reload # 重新加載 systemctl enable frpc.service # 使能開機啟動 systemctl start frpc.service # 開啟服務(wù) systemctl status frpc.service # 查看服務(wù)狀態(tài)

如果開啟成功,則會顯示如下界面 Activate 會顯示綠色的 running

云服務(wù)器 A 中的開機啟動方式也是類似的,就不再贅述了。

5、設(shè)置frp安全連接的方法

如果直接將服務(wù)器暴露到公網(wǎng)上可能會有安全隱患,如果別人知道了公網(wǎng)中轉(zhuǎn)站的 ip 和轉(zhuǎn)接端口,就相當于知道了內(nèi)網(wǎng)服務(wù)器的 ssh 端口,如果知道密碼的話就可以隨意登陸了。因此,登陸密碼可以復(fù)雜一些以保證安全。另外一點,可以使用安全ssh登錄,這個是官網(wǎng)的方法GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. - GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.https://github.com/fatedier/frp#expose-your-service-privately

frp 服務(wù)端主機 A 的 frps.ini 不需要修改,這要修改 frp 客戶端主機 B 的 frpc.ini 的配置,這里移除了?remote_port 的設(shè)置。

[common] server_addr = x.x.x.x server_port = 7000 token = 12345 [secret_ssh] # secret tcp type = stcp # security key,只有 sk 一致的用戶才能訪問到此服務(wù) sk = abcdefg # 向外部暴露的本地SSH服務(wù)端口 local_ip = 127.0.0.1 local_port = 22

另外,需要遠程連接內(nèi)網(wǎng)服務(wù)器的個人PC也需要運行 frpc,此時 frpc.ini 的配置為:

[common] server_addr = x.x.x.x server_port = 7000 token = 12345 [secret_ssh_visitor] type = stcp role = visitor server_name = secret_ssh # secret key,必須與目標主機的 frpc.ini 中的 sk 一樣 sk = abcdefg # 綁定本地端口用于訪問 SSH 服務(wù) bind_addr = 127.0.0.1 bind_port = 6000

使用安全連接的情況下,在遠程連接時,需要先在個人電腦上(這里是Windows)運行以下命令:

frpc.exe -c frpc.ini

然后再執(zhí)行ssh命令實現(xiàn)遠程連接

ssh [username]@127.0.0.1 -p [port_num]

總結(jié)

以上是生活随笔為你收集整理的内网穿透配置(FRP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。