花生壳内网穿透

硬件准备: 树莓派3b

软件准备:crt,花生壳

一、到花生壳官网下载树莓派版本到电脑,得到phddns_5.1.0_rapi_aarch64.deb文件,再通过FileZilla上传到树莓派

二、当然可以直接在树莓派中下载通过命令(因为我树莓派用的是3b,所以直接用dpkg -i phddns_3.0.4_systemd.deb),命令:wget http://download.oray.com/peanuthull/embed/phddns_3.0.4_systemd.deb

 三、下载或上传完便可以安装

 1.直接到用.deb文件的目录下,输入指令:sudo dpkg -i phddns_3.0.4_systemd.deb (注意要 sudo

 2.如上图,1为SN码(我这里没显示,继续看下操作),2为默认密码,以及下方的远程管理地址http://b.oray.com。

 3.SN码没显示的,可以直接输入  sudo phddns status

 四、点击远程管理地址 http://b.oray.com,下方选择SN登录。

 1.输入刚刚树莓派上获取的SN码与密码登录,首次登录,需先激活。提供扫码激活和密码激活两种方式,可灵活选择。 ①扫码激活:需使用花生壳管理APP或微信进行扫码激活; ②密码激活:输入已注册的贝锐帐号密码激活。

 

 

 2.激活成功后,进入花生壳管理平台。若绑定SN码的帐号只有动态域名解析功能,需使用内网穿透功能时,可点击“免费开通”,或直接将帐号升级到带内网穿透功能的服务版本。

五、添加内网穿透映射时,点击页面上的“增加映射”按钮。

 注意

内网主机填写我们树莓派的ip地址(可以在树莓派内通过ifconfig命令查看自己的树莓派ip)

内网端口号和上面访问地址的端口号写一样!!

下图显示,便完成树莓派的内网穿透(点击左下方诊断便可以看到域名ip地址的指向

 六、树莓派的服务器代码

#include<stdio.h>
#include <unistd.h>
#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<stdlib.h>

#include<string.h>


int main()
{

        int s_fd;
        int n_read;
        char readBuf[128];
        struct sockaddr_in s_addr;
        struct sockaddr_in c_addr;




        char *msg = "I get your connect";

        memset(&s_addr,0,sizeof(struct sockaddr_in));
        memset(&c_addr,0,sizeof(struct sockaddr_in));

        //1.socket

        s_fd=socket(AF_INET,SOCK_STREAM,0);

        if(s_fd == -1){
                perror("socket");
                exit(-1);
        }

        s_addr.sin_family= AF_INET;
        s_addr.sin_port = htons(8989); //端口号要和在花生壳内网主机设置的端口一致
        inet_aton("192.168****",&s_addr.sin_addr);//填写的是内网主机的ip
	 //2.bind

        bind(s_fd,(struct sockaddr *)&s_addr,sizeof(struct sockaddr_in));
        //3.listen

        listen(s_fd,10);
        int clen =sizeof(struct sockaddr_in);
        int c_fd = accept(s_fd,(struct sockaddr *)&c_addr,&clen);
        //4.accepet
        if(c_fd == -1)
        {
                perror("accept");


        }


        printf("get connect: %s \n",inet_ntoa(c_addr.sin_addr));//要把网络格式的IP地址转化为字符串形式


        //read
        n_read = read(c_fd,readBuf,128);
        if(n_read != -1)
        {
                perror("read");
        }else{

                printf("get message:%d,%s\n",n_read,readBuf);

        }
        //writed
        write(c_fd,msg,strlen(msg));
        printf("connect\n");


        return 0;

}

可以先通过电脑网络助手调试一下(网络助手的客户端ip要填写域名IP地址指向ip

七、结果:

 成功连上,树莓派内网穿透到此完成

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值