樹莓派-SSH反向隧道配置外網(wǎng)訪問
家里架設(shè)了一個(gè)樹莓派, 想要在外網(wǎng)訪問一下, 找到了通過SSH反向隧道設(shè)置方法
需要一個(gè)外網(wǎng)可以訪問的固定IP的服務(wù)器轉(zhuǎn)發(fā).
基礎(chǔ)情況
內(nèi)網(wǎng)樹莓派情況
ip: 192.168.1.19
ssh: 22
user: pi外網(wǎng)服務(wù)器
ip: 10.10.10.10
ssh: 8888
綁定轉(zhuǎn)發(fā): 9999
內(nèi)網(wǎng)樹莓派配置秘鑰認(rèn)證登陸
> ssh-keygen -t rsa
# 樹莓派家目錄下 生成兩個(gè)文件 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
# 拷貝公鑰到遠(yuǎn)程服務(wù)器的 authorized_keys 文件
> ssh-copy-id -i .ssh/id_rsa.pub remote_user@10.10.10.10 -p port
# 或者手工拷貝 .ssh/id_rsa.pub 添加到 遠(yuǎn)程服務(wù)器 authorized_keys 文件中
> cat .ssh/id_rsa.pub >> remote_user@10.10.10.10 -p port
外網(wǎng)服務(wù)器配置
修改 /etc/ssh/sshd_config
文件, 設(shè)置
GetewayPorts yes
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
重啟ssh服務(wù) server sshd restart
內(nèi)網(wǎng)樹莓派配置
ssh -fCNR 9999:localhost:22 user_remote@10.10.10.10 -p 22
內(nèi)網(wǎng)樹莓派機(jī)器執(zhí)行上述命令
9999 外網(wǎng)服務(wù)器代理端口, 代理所有請(qǐng)求轉(zhuǎn)發(fā)到內(nèi)網(wǎng)22端口
訪問服務(wù)器9999轉(zhuǎn)發(fā)到樹莓派
任意shell 執(zhí)行 ssh pi@10.10.10.10:9999
提示輸入樹莓派口令, 即可登錄樹莓派
外網(wǎng)服務(wù)器還可以設(shè)置端口代理轉(zhuǎn)發(fā)端口
ssh -fCNL "*:9988:localhost:9999" localhost -p 22
外網(wǎng)服務(wù)器執(zhí)行上述命令
*:9988 任意機(jī)器訪問9988端口, 轉(zhuǎn)發(fā)到本地(外網(wǎng)服務(wù)器)的99999端口
轉(zhuǎn)發(fā)到9999端口的數(shù)據(jù)在轉(zhuǎn)發(fā)到 內(nèi)網(wǎng)樹莓派 22端口
以上可以外網(wǎng)訪問內(nèi)網(wǎng)樹莓派, 但是會(huì)超時(shí)斷開連接, 一下使用autossh 待更新驗(yàn)證
autossh -M 12041 -fCNR 12040:localhost:22 root@45.78.48.34 -p 29461
frp內(nèi)網(wǎng)穿透
frp 是一個(gè)可用于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用策严,支持 tcp, udp 協(xié)議,
為 http 和 https 應(yīng)用協(xié)議提供了額外的能力逛绵,且嘗試性支持了點(diǎn)對(duì)點(diǎn)穿透。
從 最新release 下載最新版本
查看系統(tǒng)版本及下載
root@localhost:~# uname -a
Linux localhost.localdomain 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux
root@localhost:~# arch
x86_64
# 使用linux 64位版本
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux
pi@raspberrypi:~ $ arch
armv7l
# 使用 arm 版
wget https://github.com/fatedier/frp/releases/download/v0.32.0/frp_0.32.0_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.32.0/frp_0.32.0_linux_arm.tar.gz
服務(wù)器及樹莓派各自下載并解壓后
- 外網(wǎng)服務(wù)器端
服務(wù)器端關(guān)注frps
和frps.ini
文件
編輯frps.ini
文件
[common]
bind_port = 9999
此端口需要服務(wù)器開放,用來接收數(shù)據(jù)轉(zhuǎn)發(fā)到內(nèi)網(wǎng)樹莓派指定端口(如: 22)
外網(wǎng)開啟服務(wù), 保存日志
nohup ./frps -c ./frps.ini >> runlog.log &
- 內(nèi)網(wǎng)樹莓派
樹莓派關(guān)注frpc
和frpc.ini
文件
編輯frpc.ini
文件
[common]
server_addr = 10.10.10.10
server_port = 9999
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 9988
common
段 配置外網(wǎng)服務(wù)器的地址和轉(zhuǎn)發(fā)端口
ssh
段 配置協(xié)議和內(nèi)網(wǎng)ssh地址/端口
其中 remote_port
是外網(wǎng)登陸樹莓派的端口 使用ssh -p 9988 local_user@10.10.10.10
登陸內(nèi)網(wǎng)
內(nèi)網(wǎng)開啟服務(wù), 保存日志
nohup ./frpc -c ./frpc.ini >> runlog.log &
全部配置完成!
使用ssh -p 9988 local_user@10.10.10.10
登陸內(nèi)網(wǎng)