树莓派内网端口映射
配置frp端口映射
在學習工作中,我們通常需要接入內網查找資料使用內網資源,但是又不想始終保持內網連接(存在內網網速,vpn代理等限制)。又或者我們沒辦法接入內網,那么這時候我們如何通過外網訪問內網資源呢?內網穿透也就是端口映射解決了 這個問題,目前有許多工具可供使用,這里我們選擇了github上一個開源的項目frp,有內網vpn的話可以不用往下看了。
frp是一種快速反向代理,可幫助您將NAT或防火墻后面的本地服務器公開到Internet。到目前為止,它支持TCP和UDP以及HTTP和HTTPS協議,在這些協議中,請求可以通過域名轉發到內部服務。
從上面來看,frp可以轉發請求!這正是我們需要的,請求通過frp轉發給內網的服務器進行內網訪問。
準備:一臺公網云服務器(阿里云或者騰訊云都可)、樹莓派、筆記本。
1、服務器端
下載frp壓縮包并且解壓:
wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd64.tar.gz tar -zxvf frp_0.29.1_linux_amd64.tar.gz進入解壓縮文件夾,這里有4個主要的文件frpc、frpc.ini、frps、frps.ini。而frps_full.ini和frpc_full.ini為配置文件的完整版,我們只需要配置frpc.ini和frps.ini文件即可。服務端配置frps.ini文件:
frps.ini
[common] bind_port = 9583//frp服務連接端口,需與frpc的服務端口對應 vhost_http_port = 8080開啟frp服務:
./frps -c ./frps.ini2、樹莓派端
下載下載frp壓縮包并且解壓:
wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd.tar.gz//這里注意版本同上面一致都為v0.29.1,由于樹莓派內核等原因選擇frp_0.29.1_linux_amd版本 tar -zxvf frp_0.29.1_linux_amd64.tar.gz同理解壓縮之后會有frpc.ini文件,frpc.ini文件配置為:
[common] server_addr = ip//云服務器外網ip server_port = 9583//frp服務連接端口,需與frps的服務端口對應[ssh]//配置ssh連接 type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000//服務器遠程端口[web] type = http local_port = 80 custom_domains = www.example.com[test_static_file]//文件服務器配置信息 type = tcp remote_port = 9259//遠程端口 plugin = static_file plugin_local_path = /tmp/files//文件系統本地路徑 plugin_strip_prefix = static plugin_http_user = username//進入文件系統的用戶名 plugin_http_passwd = userpassword//進入文件系統密碼開啟frp服務:
./frpc -c ./frpc.ini3、云服務器開放端口
本人使用的是阿里云輕量應用服務器,端口開放步驟:
1.游覽器輸入網址:
https://www.aliyun.com/登陸阿里云賬號。
2.控制臺->已開通的云產品->輕量應用服務器->服務器列表->選擇自己的服務器->安全->防火墻->添加規則,這里給出端口配置規則。
3.開放所需的端口,本人是開放了9583、6000。
自此樹莓派和云服務器連接成功,圖示:
4、遠程連接內網服務器
現在我們服務器端frps.ini文件、樹莓派端frpc.ini都已經配置好并且服務都開啟了,服務器端口也已經開放。接下來使用xshell連接樹莓派:
輸入服務器ip和frpc.ini配置的遠程ssh連接端口,用戶名和密碼。
連接成功!
另:我是在frpc.ini中配置了文件服務器,在服務器開放相應端口之后輸入:
http://ip:port/static/
即可訪問樹莓派/tmp/files下的文件,注意:files文件夾是要自己創建,文件路徑和port在前面配置樹莓派端的[test_static_file]下配置過的,其中網址中ip即為云服務器外網ip。
效果:
可能遇到的問題
1、連接超時:檢查frpc.ini和frps.ini配置文件端口是否對應,服務器端口是否開放。
2、本地127.0.0.1:22連接連接被拒絕:檢查ssh服務是否開啟。
注意:認真確認自己字符符號是否打錯!
這里給出一位大哥問題總結博客:
也可關注公眾號:"faify with you"一起討論交流。
祝大家生活愉快!
總結
- 上一篇: 内蒙古自治区乌兰察布市谷歌高清卫星地图下
- 下一篇: java在线编译器手机版,java编译器