做网站空,商务,网站背景怎么设置,四川省城乡住房建设部网站参考#xff1a;树莓派接入公网 作者#xff1a;图触靓 发布时间#xff1a; 2020-12-22 17:28:19 网址#xff1a;https://blog.csdn.net/bhbhhyg/article/details/107994829 目录为什么要接入公网接入公网的方法#xff08;花生壳#xff09;1、下载工具huashenke2、安… 参考树莓派接入公网 作者图触靓 发布时间 2020-12-22 17:28:19 网址https://blog.csdn.net/bhbhhyg/article/details/107994829 目录为什么要接入公网接入公网的方法花生壳1、下载工具huashenke2、安装3、查看SN码与初始密码4、登录配置5、配置树莓派服务器6、配置非局域网设备接入局域网内的客户端以安卓为例检测是否穿透成功为什么要接入公网
为了可以被非局域网设备访问、与非局域网设备通信。
接入公网的方法花生壳
1、下载工具huashenke
进入官网下载树莓派版本的到自己电脑再拷贝到树莓派里面或者通过FileZilla直接发送到树莓派上。
2、安装
通过ssh远程连接树莓派进入有安装包的文件夹输入指令
sudo dpkg -i phddns_3.0.4_systemd.deb
3、查看SN码与初始密码
一般安装完成后会直接看见SN码与初始密码admin如果没用看见SN码则输入指令 sudo phddns status
4、登录配置
浏览器输入远程管理地址进入远程管理页面输入对应的SN码和密码首次登录需要进行初始化重设密码填写手机发送验证码等 按照提示操作后我们进入管理页面 点击内网穿透-添加映射。
注意
内网主机填写我们树莓派的ip地址可以在树莓派内通过ifconfig命令查看自己的树莓派ip
内网端口号和上面访问地址的端口号写一样 这样树莓派的内网穿透便完成了。
5、配置树莓派服务器
我们在通过socket网络编程使用内网穿透树莓派作为服务器配置网络ip与端口号时应当注意ip要填树莓派自己的ip也就是配置的内网主机ip端口号要填在花生壳内设置一样的端口号
int initsocket(){int s_fdsocket(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_familyAF_INET;addr.sin_porthtons(56291);//填在花生壳内外网一样的端口号inet_aton(192.168.200.108,addr.sin_addr);//填树莓派的内网ip// addr.sin_porthtons(atoi(argv[2]));// inet_aton(argv[1],addr.sin_addr);int bidbind(s_fd,(struct sockaddr *)addr,sizeof(struct sockaddr_in));listen(s_fd,10);int lensizeof(struct sockaddr_in);return s_fd;
}6、配置非局域网设备接入局域网内的客户端以安卓为例
连接时候的ip要填穿透的ip,点击我的应用里面的诊断然后找到域名IP地址指向这个就是可被非局域网设备访问的ip。
安卓内连接树莓派服务器的核心配置代码
public void sendMessage() {new Thread(new Runnable() {Overridepublic void run() {// TODO Auto-generated method stubtry {Socket client new Socket(花生壳域名指向的ip地址,对应端口号);//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();}检测是否穿透成功
安卓客户端使用移动数据流量树莓派服务器使用wifi这两个设备并不处在一个局域网内
安卓向树莓派发送指令 能够直接被树莓派接收到说明穿透成功