莫忘少年凌云志
曾许天下第一流

利用nshell进行内网穿透以及ssh加速

前言

好久没有写东西了,来写个今天发现的一个小工具,可以用来ssh加速或者用来连接没有公网ip的机器。举个例子你是租房子的,你是无权限去更改房东的光猫或者路由器设置的,这个时候又有连回自己的机器的需求;又或者你有个动态ip的vps,每次都要去看新的ip也很麻烦;再或者你的VPS在遥远的地方,直连的时候要绕地球一圈,用这个nshell就可以加速连接ssh,更安全,id寻址,不受ip局限,区块链的256位椭圆曲线非对称密钥通讯。有些人说可以用frp穿透,frp需要别人给你提供服务器才可以,这个是免费的。

How to ?

致力于写一些适合小白的教程,所以高手勿喷。

第一步

下载服务端:https://github.com/nknorg/nkn-shell-daemon/releases,点击上述地址,选择适合自己的机器的安装包,截止我写这个文章的时候还没有预编译的win和arm架构的。开发大哥说后期会更新的。这里假设是在普通电脑或者vps上面安装,以后会更新arm架构的,就可以放在N1或者华硕的路由器这种设备上跑了。所以我们这里下载linux-amd64.tar.gz这个压缩包,在国外的VPS上的话直接运行:

#下载

wget https://github.com/nknorg/nkn-shell-daemon/releases/download/v1.0.7/linux-amd64.tar.gz

#解压

tar -zxvf linux-amd64.tar.gz

如果你是国内的机器,一般由于某些众所周知的原因,你直接wget会非常慢,非常难,所以建议现在本地下了,再用winscp传上去。再在shell里去解压。假设我把linux-amd64.tar.gz用winscp传到了/root下,那么用以下命令

#打开目录

cd ~

#解压

tar -zxvf linux-amd64.tar.gz

第二步

不管你用上述那种方法,解压好以后,执行:

cd linux-amd64

./nshd

nshd会从配置文件目录下读取3个文件,authorized_keys、wallet.json和wallet.pswd。
authorized_keys的作用跟ssh类似。
两个wallet文件则用于公私钥系统。配置文件夹下没有这两文件的话,nshd会自动创建,默认的配置文件目录是/etc/nshd

在执行./nshd后这里有一个注意事项一定要记下来,看下图

跑起来以后会看到有一个Listening at 一串乱码。请你把这串乱码记下来,我们把这串东西叫做 server id。后面要用到。

然后按ctrl+c把这个nshd中断掉。再次运行,这时候带上一个指定路径的参数-b。如下

./nshd -b /home

这时候会在/home这个目录下生成wallet.pswd、wallet.json、authorized_pubkeys其实就是和刚才那一步名字一模一样的3个文件,这里也把Listening at后面那一串记下来,我们管他叫 client id。然后从winscp里把/home/下的2个wallet开头的文件复制到本地。

然后 再次按ctrl+c把这个nshd中断掉。执行以下命令:

#编辑配置文件

nano /etc/nshd/authorized_pubkeys

由于我是直接用root用户,所以只用把上面的client id加进去就行了,然后保存退出。如果你是用普通用户的,需要看一下项目页面上的说明。

如果nano命令不会用,就用winscp编辑。编辑完了保存。

再次运行nshd,只不过这次放在后台运行,执行:

nohup ./nshd &

这样就是在后台运行了。vps上的操作告一段落了。

第三步

下载客户端,点击:https://github.com/nknorg/nshell-chrome-extension/releases

下载dist.zip这个。然后解压得到一个叫做dist的文件夹,不要动他。打开chrome,右上角—三横那个按钮—-设置—-左边扩展功能—-左上角载入未封装项目,如果找不到这个 载入未封装项目 你需要打开开发者模式,怎么打开这里就不说了,可以自己百度chrome打开开发这模式。然后选择刚才解压出来的叫做dist的文件夹,点击 选择文件夹 按钮,这样就装好了。或者你直接在chrome的商店里搜索nkn就能搜到,迫于很多人不是用chrome,或者无法访问Chrome商店,所以也提供了第一种安装方法

这时候chrome右上角会多出一个nshell的图标,见下图:

点击以后,出来一个窗口建议按那个最大化的按钮,不然这个小窗口很容易消失掉,见下图

按了以后就会变成一个标签页,这样切换窗口的时候,这个nshell就不会消失了。

然后按上图的添加 NSHELL这个按钮。出来下图

名称随便填,主要是第二行Remote Address,把 第二步 里面的server id填进去。下面3 4行暂时空着不填,点确定先出去。

回到下图的界面,点击那个指纹的按钮—–我的身份右侧的加号按钮—–KEYSTORE—第一行随便点一下。选择第二步里面拖到本地的wallet.json这个文件,上传,tag随便填一个,然后按确定。

此图像的alt属性为空;文件名为4.png

点击指纹左侧那个按钮回到上一个界面。回到如下界面,按绿色的按钮。

再次回到编辑页面,点击seed右边的小箭头,会出来一个让你选的,选你上一步里面的那个tag。然后这个页面上的tag随便造一个,点确定。这是你会发现多了一个CONNECT按钮。点击CONNECT按钮,会出来一个窗口让你输入密码。这个时候去打开第二步用winscp拖到本地的wallet.pswd。把里面的内容就是这边所需的密码,输入进去按下一步,大概2s就连上了。

写在后面的话

现在这个只能穿透ssh服务,像3389啊或者别的一系列别的自定义端口,据开发大哥说,后期会支持的,可以关注一下。测试了一下,基本晚高峰操作法国的ks3c都能流畅操作也不会断开。还蛮好的,免费的服务。

说下缺点,由于是nodejs的打包,包含了所有依赖的nodejs第3方库,所以这个二进制文件非常大,大概有40多M,这个对于一些路由器来说体积是致命的,开发大哥说后期会用golang写一版,会小很多。其他缺点暂时没发现。

赞(1) 打赏
未经允许不得转载:面条的小博客 » 利用nshell进行内网穿透以及ssh加速
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏