ZOE | 数林觅风 欢迎关注公众号「数林觅风」

【经验】从外网访问内网服务器:安装到使用一站通

2017-10-29
ZOE

Notes:

★ 如果你是第一次阅读,推荐先浏览:【重要公告】文章更新、阅读规则、导图下载

★ 目前文章更新主平台已迁移至公众号数林觅风(zoemindmap)。所有PDF&高清原图只需在公众号后台回复关键词即可下载。

如果你所在的是一个小的实验室,可能并没有大型的服务器集群而是仅是配备了小型服务器,日常工作便是在在局域网内访问服务器进行各项数据处理。因为在外网无法访问内网服务器,极大的限制了我们偶尔在外想监测一下数据的欲望。本文介绍了一种简单易用的方法,按照步骤逐步操作即可解决此问题,从此随时随地查看工作进度不是梦,哈哈~

本文要解决的问题

  1. 如何在 Linux 服务器上安装/启动/使用 nat123?
  2. 如何实现外网访问内网的 Linux 服务器?
  3. 分享一些 iTem2 的使用技巧。

关键词

  • linux
  • nat123
  • iTerm2

服务器操作

1.安装必要的软件

sudo apt-get install mono-complete

2.安装 Nat123 客户端

首先你需要注册一个 Nat123 账户,获得用户名和密码。除了下面的方式,你也可以选择到网站上下载再上传至服务器。

mkdir nat123 && cd nat123
wget http://www.nat123.com/down/nat123linux.tar.gz
tar -zxvf nat123linux.tar.gz

3.启动 Nat123 客户端

mono nat123linux.sh

按提示依次输入自己的账户和密码。(以后后台启动服务只需输入mono nat123linux.sh service &

设置端口映射

  1. 登录网站 Nat123 账户
  2. 依次点击:用户中心 → 端口映射添加

-w300

-w550 说明:

  • 内网端口:SSH 端口号
  • 内网地址:即内网 IP。
  • 外网端口:新增时自动分配的可用端口,无需自己设置。
  • 外网域名:可免费提供也可自己修改。

注意:点击确认保存时,会需要 T 币不为0或实名认证,但实名认证的方式仍是需要你通过支付宝购买 T 币。 这里我为了节约时间,就选择花了8块钱买了80个 T 币(购买的最小额度)。点击确认保存后,可以看到以下界面:

-w650 这就表明大功告成啦!

客户端使用

这里以 item2 为例,其他 ssh 软件配置很类似。

  1. 打开 iTerm2
  2. 输入ssh -p 41795 username@490873a6.nat123.cc,此处的 username 即在你在日常使用服务器时的登录名
  3. 提示输入密码,输入后回车,OK!

iTerm2 使用技巧

设置好 Profiles,管理多个登录配置

经过上面的配置,每次需要登录时只要选择一个 Profile 配置,不需要每次都重新输入一大串命令。这已经极大地提高了日常工作的效率,但仍旧是不完美的。由于 ssh 命令不提供密码这个参数,每次登录仍旧需要手动输入密码。于是我们还需要下面的大招

如何让 iTerm2 免密码登录?

这里采用密钥对的方法。操作主要分两个部分:用户端 & 服务器端。

用户端:

  1. 执行ssh-keygen -t rsa -C 'your_email@domain.com'
  2. 以上命令会生成两个文件: id_rsa以及id_rsa.pub
  3. 查看id_rsa.pub文件:

复制此文字(即密钥)。

服务器端:

echo <复制文字> » ~/.ssh/authorized_keys

经过以上操作,再次登录时会发现不需要再输入密码啦~

如何保持 iTerm2 不断开?

在日常使用中,还发现有个问题:一段时间不操作 iTerm,它竟然提示连接失败了?!于是不得不再一次重复以上的登录操作。偶然间发现这个问题也有解决方案,不忍回忆我那些一遍遍重复登录的日子(微笑脸)。

一共就两步:

  • 修改配置文件。(不存在可以新建一个)
vi ~/.ssh/config
  • 追加内容。
Host *
    ServerAliveInterval 60

表示 ssh 客户端每隔30秒给远程主机发送一个 no-op 包(no-op 即无任何操作),这样远程主机就不会关闭这个 SSH 会话。

参考资料

外网SSH怎么访问内网LINUX
Mac下使用iTerm2让SSH免密码登录远程服务器
iTerm2的使用
配置ssh密钥认证自动登录


Content