map2cloud - 映射本地端口至云端

2017.9.13
开源工具

很多时候,我们需要远程访问本地的服务,一般我们是借助于Teamviewer或者花生壳,而这往往需要人在电脑旁或者外网ip变化导致无法访问,还有一点,无法真正做到本地化操作,体验比较差;而借助该工具就可以直接将本地服务映射到云端,我们只需要访问云端对应端口就能访问本地服务。目前该工具已开源,大家可以访问此地址:https://github.com/smallmuou/map2cloud。欢迎star和fork,若在使用过程中有发现问题,欢迎提issue.

准备

在使用该工具,你至少需要准备一下几个内容

  • 装有sshd的云端主机
  • 一台装有linux系统的本地主机

安装

1. 安装依赖工具 - autossh

可以使用yum或apt-get安装

# centos
yum install autossh

# debain
apt-get install autossh

如果以上方法无法安装,则请直接到autossh官网,下载源码并进行安装.

2. 安装map2cloud

sudo curl https://raw.githubusercontent.com/smallmuou/map2cloud/master/map2cloud > /usr/local/bin/map2cloud
sudo chmod +x /usr/local/bin/map2cloud

3. 生成rsa密钥

请使用ssh-keygen生成密钥对

ssh-keygen -t rsa

PS: 一路Enter就行,会在$Home/.ssh/下生成id_rsa和id_rsa.pub

4. 开启云端sshd的GatewayPorts功能

默认情况sshd是不开启GatewayPorts,这样无法外部访问.

vim /etc/ssh/sshd_config

GatewayPorts yes

保存退出后,重启sshd
service sshd restart

使用

USAGE: map2cloud [OPTIONS] ssh-user@cloud-ip [local-ip:]local-port cloud-port

DESCRIPTION:
    ssh-user        The ssh user to access to cloud server.
    cloud-ip        The cloud server ip or domain.
    local-ip        The local ip to map, default is localhost.
    local-port      The local port to map.
    cloud-port      The port which local port to map to. note it must be an even number.

OPTIONS:
    -h              Show this help message and exit.
    -i              Assign ssh private key path.
    -p              Assign ssh port.
    -n              Assign name of the service.

参数说明:

  • ssh-user - 云端sshd用户
  • cloud-ip - 云端主机IP或域名
  • local-ip - 可选,本地主机IP,不填,则为localhost
  • local-port - 待映射的本地端口
  • cloud-port - 需要映射至云端的端口,必须偶数

选项:

  • -i 指定ssh私钥路径
  • -p 指定云端sshd端口,默认22
  • -n 指定本地服务名字,默认r-端口

可以通过map2cloud -h查看详细的帮助

例子

  • 映射本机ssh服务端口22至云端22222
map2cloud -i /root/.ssh/id_rsa -p 22 -n rssh root@your-cloud-ip 22 22222
/etc/init.d/rssh start

PS:这样我执行要执行ssh -p 22222 user@your-cloud-ip,就可以访问本地主机

  • 映射192.168.12.100端口80至云端10080
map2cloud -n rhttp root@your-cloud-ip 192.168.12.100:80 10080
/etc/init.d/rhttp start

PS: 只需在浏览器下输入http://your-cloud-ip:10080,就可以访问本地服务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,797评论 19 139
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,694评论 2 56
  • ssh常用用法小结 在我们日常的工作中,经常涉及到维护服务器,那么为了方便操作,以及安全方面的考虑,通常我们都会在...
    大晴天小阳光阅读 8,384评论 0 3
  • 受害者?小小第一次听到这这个名词是在一本关于心理学的书籍里面。书上说:受害者习惯于把痛苦和快乐放在别人手上,比如家...
    水默语阅读 3,576评论 0 1
  • 1. 今天上午,向我推销的那位健身房工作人员给我发一条微信:坚持,坚持,坚持,你是最棒的!由于工作原因,连续四天没...
    木里兮阅读 3,621评论 0 2