目录

花生壳内网穿透

/Ubuntu/phddns/limit.png 使用花生壳,实现内网穿透,以便在公网的机器可以正确路由到内网的主机上的服务。

安装和卸载

1
2
3
S wget "https://down.oray.com/hsk/linux/phddns_5.2.0_amd64.deb" -O phddns_5.2.0_amd64.deb
$ sudo dpkg -i phddns_5.2.0_amd64.deb #安装
$ sudo dpkg -r phddns  #卸载

运行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$ phddns
Phtunnel Serive called with  unknown argument
(phddns  |start|status|stop|restart|reset|enable|disable|version)


$ phddns status
 +--------------------------------------------------+
 |          Oray PeanutHull Linux 5.2.0             |
 +--------------------------------------------------+
 |              Runstatus: ONLINE                   |
 +--------------------------------------------------+
 |              SN: oray************                |
 +--------------------------------------------------+
 |    Remote Management Address http://b.oray.com   |
 +--------------------------------------------------+

SN码激活

phddns status会提示有远程的管理地址:http://b.oray.com,选择SN登录。 帐号在phddns status指令返回,登录的初始密码为admin

首次登录,需先激活。所以需要注册贝锐的管理帐号用于以上SN码激活,注册地址:注册帐号

激活成功后,再用SN码登录时,密码自动更改为贝锐的管理帐号的密码。

TCP添加映射

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

/Ubuntu/phddns/free-usage.png

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

根据页面提示填写映射所需的信息,这里以映射Ubuntu系统的SSH服务(22端口)为例:

①应用名称:自定义

②应用图标:自行选择

③映射类型:选择TCP

④映射模板:暂不选择模板

⑤外网域名:选择用作外网访问的域名,域名是平台默认生成,这时候应该有个默认域名可供选择。

⑥外网端口:选择动态端口

⑦内网主机:映射的Ubuntu系统内网IP地址

⑧内网端口:映射的服务类型对应端口22

⑨带宽:购买映射带宽后,可支持给映射分配额外带宽,这里保存默认。

确认映射内容无误后,点击“确定”。

/Ubuntu/phddns/port-mapping.png
Tip

查看当前的ubuntu是否安装了ssh-server服务。默认只安装ssh-client服务。

1
dpkg -l | grep ssh

如果没有openssh-server,安装:

1
sudo apt-get install openssh-server

这样在外网的电脑上,打开连接SSH服务的工具程序,输入域名与外网端口号就可以访问了。

HTTP添加映射

HTTP映射和TCP映射大同小异,只不过要向平台缴费¥6,然后等平台给一个新的域名。 建议端口号用默认的就可以,然后内网ip和端口按实际的填写。可以开启限制访问。

/Ubuntu/phddns/oder.png

远程桌面

以Windows远程Ubuntu桌面为例。

Windows的mstsc远程桌面支持远程桌面协议 (RDP), Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面。

Ubuntu按照xrdp:

1
2
3
4
sudo apt install xrdp
sudo systemctl enable xrdp
sudo adduser xrdp ssl-cert
sudo systrmctl restart xrdp

xrdp默认使用/etc/ssl/private/ssl-cert-snakeoil.key,该文件ssl-cert组里的用户是只读的。

Tip
在远程桌面前,最好退出其他有在登录的用户,避免黑屏。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ sudo systemctl status xrdp
● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-08-31 22:47:17 CST; 2s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
    Process: 17618 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
    Process: 17626 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 17627 (xrdp)
      Tasks: 1 (limit: 38360)
     Memory: 872.0K
        CPU: 11ms
     CGroup: /system.slice/xrdp.service
             └─17627 /usr/sbin/xrdp

8月 31 22:47:16 walle systemd[1]: Starting xrdp daemon...
8月 31 22:47:16 walle xrdp[17626]: [INFO ] address [0.0.0.0] port [3389] mode 1
8月 31 22:47:16 walle xrdp[17626]: [INFO ] listening to port 3389 on 0.0.0.0
8月 31 22:47:16 walle xrdp[17626]: [INFO ] xrdp_listen_pp done
8月 31 22:47:16 walle systemd[1]: xrdp.service: Can't open PID file /run/xrdp/xrdp.pid (yet?) after start: Operation not permitted
8月 31 22:47:17 walle systemd[1]: Started xrdp daemon.
8月 31 22:47:18 walle xrdp[17627]: [INFO ] starting xrdp with pid 17627
8月 31 22:47:18 walle xrdp[17627]: [INFO ] address [0.0.0.0] port [3389] mode 1
8月 31 22:47:18 walle xrdp[17627]: [INFO ] listening to port 3389 on 0.0.0.0
8月 31 22:47:18 walle xrdp[17627]: [INFO ] xrdp_listen_pp done

由此可以看出,xrdp的默认端口是3389。花生壳上添加tcp的映射方式,内网端口就是xrdp的端口号。

xrdp在局域网中可以延时很低,但是在通过花生壳在公网中访问会非常卡顿。

这里有个临时解决方案:

在Windows远程桌面时,选择显示选项:

  • 体验 -> 选择链接速度来优化性能(调制解调器56Kbps。
  • 显示 -> 选择桌面的大小(1024×768。

总结

对于个人用户,部署友好,3步创建映射,一键内网穿透无需公网IP,无需搭建专线。

但毕竟是商业平台,最多支持2个映射关系。

如果想添加更多的映射,配置相关安全策略,或者在性能上有需求等都是需要付费的。

尊重产权,适当氪金。

附录

花生壳5.0 for Linux使用教程