树莓派接入公网(花生壳)
參考:樹莓派接入公網(wǎng)
作者:圖觸靚
發(fā)布時(shí)間: 2020-12-22 17:28:19
網(wǎng)址:https://blog.csdn.net/bhbhhyg/article/details/107994829
目錄
- 為什么要接入公網(wǎng)
- 接入公網(wǎng)的方法(花生殼)
- 1、下載工具h(yuǎn)uashenke
- 2、安裝
- 3、查看SN碼與初始密碼
- 4、登錄配置
- 5、配置樹莓派服務(wù)器
- 6、配置非局域網(wǎng)設(shè)備接入局域網(wǎng)內(nèi)的客戶端(以安卓為例)
- 檢測(cè)是否穿透成功
為什么要接入公網(wǎng)
為了可以被非局域網(wǎng)設(shè)備訪問(wèn)、與非局域網(wǎng)設(shè)備通信。
接入公網(wǎng)的方法(花生殼)
1、下載工具h(yuǎn)uashenke
進(jìn)入官網(wǎng)下載樹莓派版本的到自己電腦,再拷貝到樹莓派里面,或者通過(guò)FileZilla直接發(fā)送到樹莓派上。
2、安裝
通過(guò)ssh遠(yuǎn)程連接樹莓派,進(jìn)入有安裝包的文件夾,輸入指令
sudo dpkg -i phddns_3.0.4_systemd.deb
3、查看SN碼與初始密碼
一般安裝完成后會(huì)直接看見SN碼與初始密碼:admin,如果沒用看見SN碼則輸入指令: sudo phddns status
4、登錄配置
瀏覽器輸入遠(yuǎn)程管理地址進(jìn)入遠(yuǎn)程管理頁(yè)面,輸入對(duì)應(yīng)的SN碼和密碼,首次登錄,需要進(jìn)行初始化:重設(shè)密碼,填寫手機(jī),發(fā)送驗(yàn)證碼等
按照提示操作后我們進(jìn)入管理頁(yè)面 ,點(diǎn)擊內(nèi)網(wǎng)穿透->添加映射。
注意:
內(nèi)網(wǎng)主機(jī)填寫我們樹莓派的ip地址(可以在樹莓派內(nèi)通過(guò)ifconfig命令查看自己的樹莓派ip)
內(nèi)網(wǎng)端口號(hào)和上面訪問(wèn)地址的端口號(hào)寫一樣!!
這樣,樹莓派的內(nèi)網(wǎng)穿透便完成了。
5、配置樹莓派服務(wù)器
我們?cè)谕ㄟ^(guò)socket網(wǎng)絡(luò)編程使用內(nèi)網(wǎng)穿透,樹莓派作為服務(wù)器配置網(wǎng)絡(luò)ip與端口號(hào)時(shí)應(yīng)當(dāng)注意,ip要填樹莓派自己的ip(也就是配置的內(nèi)網(wǎng)主機(jī)ip),端口號(hào)要填在花生殼內(nèi)設(shè)置一樣的端口號(hào)
int initsocket(){int s_fd=socket(AF_INET, SOCK_STREAM,0);if (s_fd==-1){perror("socket");exit(-1);}struct sockaddr_in addr;memset(&addr,0,sizeof(struct sockaddr_in));addr.sin_family=AF_INET;addr.sin_port=htons(56291);//填在花生殼內(nèi)外網(wǎng)一樣的端口號(hào)inet_aton("192.168.200.108",&addr.sin_addr);//填樹莓派的內(nèi)網(wǎng)ip// addr.sin_port=htons(atoi(argv[2]));// inet_aton(argv[1],&addr.sin_addr);int bid=bind(s_fd,(struct sockaddr *)&addr,sizeof(struct sockaddr_in));listen(s_fd,10);int len=sizeof(struct sockaddr_in);return s_fd; }6、配置非局域網(wǎng)設(shè)備接入局域網(wǎng)內(nèi)的客戶端(以安卓為例)
連接時(shí)候的ip要填穿透的ip,點(diǎn)擊我的應(yīng)用里面的診斷,然后找到:域名IP地址指向,這個(gè)就是可被非局域網(wǎng)設(shè)備訪問(wèn)的ip。
安卓?jī)?nèi)連接樹莓派服務(wù)器的核心配置代碼
public void sendMessage() {new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtry {Socket client = new Socket("花生殼域名指向的ip地址",對(duì)應(yīng)端口號(hào));//Socket client = new Socket(StartActivity.IP, Integer.parseInt(StartActivity.Port));OutputStream out = client.getOutputStream();out.write(message.getBytes());out.close();client.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}檢測(cè)是否穿透成功
安卓客戶端使用移動(dòng)數(shù)據(jù)流量,樹莓派服務(wù)器使用wifi,這兩個(gè)設(shè)備并不處在一個(gè)局域網(wǎng)內(nèi)
安卓向樹莓派發(fā)送指令 ,能夠直接被樹莓派接收到,說(shuō)明穿透成功!
總結(jié)
以上是生活随笔為你收集整理的树莓派接入公网(花生壳)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小米随身wifi驱动linux驱动下载,
- 下一篇: Bootstrap系列 -- 23. 图