如果你所在的是一个小的实验室,可能并没有大型的服务器集群而是仅是配备了小型服务器,日常工作便是在在局域网内访问服务器进行各项数据处理。因为在外网无法访问内网服务器,极大的限制了我们偶尔在外想监测一下数据的欲望。本文介绍了一种简单易用的方法,按照步骤逐步操作即可解决此问题,从此随时随地查看工作进度不是梦,哈哈~
本文要解决的问题
- 如何在 Linux 服务器上安装/启动/使用 nat123?
- 如何实现外网访问内网的 Linux 服务器?
- 分享一些 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 &
)
设置端口映射
- 登录网站 Nat123 账户
- 依次点击:用户中心 → 端口映射添加
说明:
- 内网端口:SSH 端口号
- 内网地址:即内网 IP。
- 外网端口:新增时自动分配的可用端口,无需自己设置。
- 外网域名:可免费提供也可自己修改。
注意:点击确认保存
时,会需要 T 币不为0或实名认证,但实名认证的方式仍是需要你通过支付宝购买 T 币。 这里我为了节约时间,就选择花了8块钱买了80个 T 币(购买的最小额度)。点击确认保存后,可以看到以下界面:
这就表明大功告成啦!
客户端使用
这里以 item2 为例,其他 ssh 软件配置很类似。
- 打开 iTerm2
- 输入
ssh -p 41795 username@490873a6.nat123.cc
,此处的 username 即在你在日常使用服务器时的登录名 - 提示输入密码,输入后回车,OK!
iTerm2 使用技巧
设置好 Profiles,管理多个登录配置
经过上面的配置,每次需要登录时只要选择一个 Profile 配置,不需要每次都重新输入一大串命令。这已经极大地提高了日常工作的效率,但仍旧是不完美的。由于 ssh 命令不提供密码
这个参数,每次登录仍旧需要手动输入密码。于是我们还需要下面的大招:
如何让 iTerm2 免密码登录?
这里采用密钥对的方法。操作主要分两个部分:用户端 & 服务器端。
用户端:
- 执行
ssh-keygen -t rsa -C 'your_email@domain.com'
- 以上命令会生成两个文件:
id_rsa
以及id_rsa.pub
; - 查看
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密钥认证自动登录【经验】从外网访问内网服务器:安装到使用一站通 (woaielf.github.io)