為了要樹莓派裡面的資料夾作為file server分享出去,搞了好久,今天晚上終於成功,所以把過程記錄下來,最終結果會像下面這樣:
- Step 1: 先把你的樹莓派的IP固定下來,否則等等在Hub上就無法針對特定內網IP開放Port
參考:http://yhhuang1966.blogspot.com/2019/03/wifi-ip.html1
2
3cd /etc
sudo cp dhcpcd.conf dhcpcd.conf.old
sudo nano /etc/dhcpcd.conf
接著檔案最下面加上如下圖的內容:
其中ip_address可用樹莓派目前使用拿到的IP來設定(於終端機ifconfig可以查詢得到),而routers與domain_name_servers則可以用你們家路由器Hub的IP位置,中華電信通常是192.168.1.1。
Step 2: 因為NGINX預設啟動時是不會把整個目錄分享出去,故你得把autoindex設定打開。故先找一個暫存位置,如/home/pi/Templates下建立起一個檔案:default.conf,然後把參考這個位置先貼上預設值,接著於location中分別加:
autoindex_exact_size off;
與autoindex on;
,其內容會如下圖:Step 3: 接著,就是來把NGINX的docker image啟動起來,你得先決定好你要開放的資料夾,如我是把/home/pi/Public/FileServer開放出去。 所以我的docker啟動指令會如下面這樣:
1
2
3
4
5docker run --name ngx_fsr \
-v /home/pi/Templates/default.conf:/etc/nginx/conf.d/default.conf \
-v /home/pi/Public/FileServer:/usr/share/nginx/html:ro \
-d -p 80:80 \
nginx其中第一個
-v
代表啟動NGINX的時候是參考我們修改過後的default.conf來啟動,而第二個-v
則是把你要開放的資料夾對應到NGINX的公開分享資料夾。 接著使用docker ps
來看一下是否有啟動成功! 這邊要記得,如果你資料夾內有index.html,則預設會先顯示index.html內容。
- Step 4: 好啦! 倒數第二步,就是要把對外的port打開,讓你可以從外部連存取你的file server內容。 首先,輸入你hub的IP位置,像我的是192.168.1.1,登入後從選單中找尋”Port Forwarding”(每個廠商路由器登入後的介面不盡相同,這個可以Google查一下你的在哪裡)。
然後開始進行設定,其中IP就填上你於Step 1中樹莓派中設定的IP,然後在Port對應列表中填上你要開放的port number,接著儲存。
- Step 5: 到https://myip.com.tw/ 查詢你對外的IP為何,如此就可以於外部系統用這個對外IP加上你開放的Port(如:http://134.181.63.98:80 )連入你於樹莓派開放的資料夾囉!!!