1. 程式人生 > >雲上樹莓派(1):環境準備

雲上樹莓派(1):環境準備

roc add latest test limit class rdp windows 兩個

1. 設備準備

準備好的設備包括:

  • 樹莓派3B,來自某寶
  • 電源,來自某寶
  • 8G 10級 microSD 卡(TF卡),包括讀卡器,來自某東
  • 散熱片兩個,來自某寶
  • SDH22 溫度濕度傳感器,來自某寶

樹莓派確實和一張信用卡一般大小,如下圖所示。 它有4個USB,1個有線網口,1個HDMI,1個音頻輸出,一個電源接口,一個TF卡插口。註意 TF卡接口在USB口的另一面。

技術分享圖片

2. 系統安裝與基本配置

2.1 系統下載

到樹莓派官網 https://www.raspberrypi.org/downloads/,下載官方系統鏡像 RaspberryPi。下載下來的是一個 zip 文件。

技術分享圖片

2.2 SD 卡刻錄

從 https://sourceforge.net/projects/win32diskimager/files/latest/download 下載刻錄工具 win32diskimager.exe。把樹莓派鏡像 zip 文件解壓,然後進行鏡像寫入:

技術分享圖片

將 SD卡插入樹莓派的SD卡口,然後接通電源,觀察指示燈。下表是指示燈表示的各種狀態:

技術分享圖片

第一次失敗,只有紅燈亮,綠色燈不閃爍。重新寫入鏡像。

首先根據 https://kb.sandisk.com/app/answers/detail/a_id/14827/~/using-sd-formatter-tool-to-restore-full-capacity-on-sdhc%2Fsdxc-cards 這個教程對SD卡做格式化:

技術分享圖片

格式化之前,能看到兩個盤符,格式化之後,就只能看到一個盤符了。

然後根據網上建議,把樹莓派解壓後的鏡像 .img 文件放到不帶中文字符的路徑下,重新刻錄,然後再通電。此時,能觀察到綠燈間歇性閃爍。

但是,此時沒有網線,沒有SSH,還無法登錄系統。

2.3 無線網絡準備和SSH連接

將 SD 卡插入Windows 系統後,能看到兩個盤,其中一個是 boot(H) 盤。在其根目錄下,創建文件 wpa_supplicant.conf,內容如下:

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config
=1 network={ ssid="<wifi 熱點名字>" psk="<wifi密碼>" }

然後,在同一個目錄下, 新建一個名為 ssh 的空白文件。將 SSD 卡插入樹莓派,重新上電。

使用 Advanced IP Scanner 掃描局域網內的IP,很容易就能看到樹莓派。如下圖所示:

技術分享圖片

使用 SSH 登錄樹莓派。默認用戶名和密碼為 pi/raspberry:

技術分享圖片

2.4 基本配置

運行 raspi-config 命令,可進行一些基本配置:

技術分享圖片

修改時區:選擇 4.Localisation Options 找到第二個 TimeZone,選擇Asia shanghai 修改鍵盤布局:選擇 4.Localisation Options, 第三個,將 鍵盤布局 改為US 美式鍵盤(因為樹莓派是英國產的 默認是英式鍵盤 而中國默認的是和美國一樣的美式鍵盤) 最後一個 Wifi地區 選中國

2.5 遠程桌面配置

首先要更新系統:

sudo apt-get update
sudo apt-get upgrade

然後安裝 xrdp:

sudo apt-get install xrdp

設置其開機自動啟動:

sudo systemctl enable xrdp

然後就可以使用 Windows mstsc 遠程登錄樹莓派了:

技術分享圖片

效果還蠻不錯:

技術分享圖片

3. 外網SSH 訪問

當前樹莓派在內網中,可以通過Wift訪問公網,但是無法從公網訪問到。參考這篇文章,利用 SSH反向隧道,實現從外網SSH訪問樹莓派。

環境準備:

  • 外網需要有一臺有公網IP 的 VPS,代號A,公網IP地址為 A1.A2.A3.A4
  • 內網中的可以訪問外網的樹莓派,代號B

樹莓派上的配置:

  • 首先安裝 autossh 軟件: apt install autossh
  • 創建用戶 autossh,產生其 ssh key 文件,拷貝到機器A 上,需要能夠從 B 無密碼SSH到A。
   useradd -m autossh
   passwd autossh
   su - atuossh
   ssh-keygen -t rsa -C autossh@raspberrypi
   ssh-copy-id [email protected]
  • 創建文件 /lib/systemd/system/autossh.service,內容如下:
[Unit]
Description=Auto SSH Tunnel
After=network-online.target
[Service]
StartLimitIntervalSec=60
User=autossh
Type=simple
ExecStart=/usr/bin/autossh -p 22 -M 8889 -NR *:8888:127.0.0.1:22 ubuntu@A1.A2.A3.A4 -i /home/autossh/.ssh/id_rsa
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target
  • 啟動該服務,確保其狀態為 active
chmod 644 /lib/systemd/system/autossh.service
systemctl enable autossh
systemctl start autossh
systemctl status autossh
  • 此時,能看到相關進程:
autossh   3709     1  0 Aug07 ?        00:00:00 /usr/lib/autossh/autossh -p 22 -M 8889 -NR *:8888:127.0.0.1:22 ubuntu@*.*.*.* -i /home/autossh/.ssh/id_rsa
autossh   3712  3709  0 Aug07 ?        00:00:00 /usr/bin/ssh -L 8889:127.0.0.1:8889 -R 8889:127.0.0.1:8890 -p 22 -NR *:8888:127.0.0.1:22 -i /home/autossh/.ssh/id_rsa ubuntu@*.*.*.*
  • 在A 上,能看到在 8888 端口上有 ssh 監聽:
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      18324/sshd: ubuntu

SSH訪問:

  • 在A 上,ssh 到 8888 端口,利用樹莓派的用戶名和密碼,可以登錄到樹莓派:

技術分享圖片

  • 還可以直接在外網利用A 的公網IP 和樹莓派的用戶名密碼直接SSH:

技術分享圖片

參考鏈接:

  • https://blog.csdn.net/lidongshengajz/article/details/73482908

雲上樹莓派(1):環境準備