如何把电脑变成服务器然后使用 ssh 远程登录

2019-02-19 12:03:47 +08:00
 itgoyo

个人比较喜欢 linux,还有 Mac OS 环境,但是由于公司设备原因只能使用 Windows 设备,但在上面使用起来极其不顺手,所以想到了这样一种远程访问的方式

当然了,市面上已经有很多好的产品了例如Teamviewer,这种工具,但是我在使用这个软件的时候感觉到有些卡顿或者说是延迟,对于强迫症患者的我,使用起来极其不舒服,而且我平时使用也基本用不到图形化界面,所以想办法使用ssh连接即可。

但是用家里电脑作为一个服务器有一个问题,就是 ip 地址不是公网地址,导致外网的人想访问,类似我在公司想使用自己电脑的时候是不能访问到的,所以我们先要把我们电脑的地址搞成公网的地址,用到的软件ngrok

官网地址 https://ngrok.com/

使用方法

这样子就可以在后台查看到相应的公网地址

然后在电脑主机(也就是作为服务器的电脑)运行一下代码

./ngrok tcp 22

然后就可以参看到地址了

Session Status                online
Account                       浮 生 甲 第  (Plan: Free)
Version                       2.2.8
Region                        United States (us)
Web Interface                 http://127.0.0.1:4041
Forwarding                    tcp://0.tcp.ngrok.io:12345 -> localhost:22

然后远程电脑可以使用客户端putty或者fianlshell等 ssh 工具登录到远程主机,对于新人个人比较推荐使用finalshell 主机的地址
ssh myuser@0.tcp.ngrok.io -p12345

-p 其实是端口号上面端口号就是 12345

连接成功之后,他会询问你用户名还有密码的,验证成功之后就可以正常远程登录了,祝你成功。


更新!!!现在已经切换成此种方式

貌似端口号每次启动都不会改变,这样子方便许多 软件更换为Sunny-Ngrok

官网: https://www.ngrok.cc/

自己申请账号,然后购买免费的香港服务器-创建 tcp 服务

软件下载地址: https://www.ngrok.cc/download.html

使用方法

./sunny clientid 隧道 id(id 自己参看自己创建的 tcp 服务后台可以查看)

启动多个隧道

./sunny clientid 隧道 id,隧道 id

使用ssh软件登陆的时候记得不要带上 tcp,只要写后面的域名即可还有相应的端口号即可

感觉这个比之前的ngrok搭建起来和链接起来比较方便

开机自启动服务脚本

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          ngrok.cc
# Required-Start:    $network $remote_fs $local_fs
# Required-Stop:     $network $remote_fs $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: autostartup of ngrok for Linux
### END INIT INFO

NAME=sunny
DAEMON=/usr/local/bin/$NAME
PIDFILE=/var/run/$NAME.pid

[ -x "$DAEMON" ] || exit 0

case "$1" in
  start)
      if [ -f $PIDFILE ]; then
        echo "$NAME already running..."
        echo -e "\033[1;35mStart Fail\033[0m"
      else
        echo "Starting $NAME..."
        start-stop-daemon -S -p $PIDFILE -m -b -o -q -x $DAEMON -- clientid 隧道 id || return 2
        echo -e "\033[1;32mStart Success\033[0m"
    fi
    ;;
  stop)
        echo "Stoping $NAME..."
        start-stop-daemon -K -p $PIDFILE -s TERM -o -q || return 2
        rm -rf $PIDFILE
        echo -e "\033[1;32mStop Success\033[0m"
    ;;
  restart)
    $0 stop && sleep 2 && $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0

文件保存为 xx.sh 文件,上面的隧道 id 改成你自己的 id

添加到 Mac 开机自启动服务

系统偏好设置-用户与群主-登录项-+刚刚的 sh 脚本

10862 次点击
所在节点    程序员
50 条回复
Windelight
2019-02-20 00:36:05 +08:00
@vinsec 我家网络摄像头、就要公网 ip、别人连不上我百度出来的 ip 等等
tees
2019-02-20 08:51:12 +08:00
@northernlights 可以通过 ZeroTier moon 来加速
guanhui07
2019-02-20 10:03:39 +08:00
frp
northernlights
2019-02-20 12:20:12 +08:00
@tees 有 moon 后流量经过服务器中转吗?
tojysir
2019-02-20 13:56:53 +08:00
虚拟机?
Variazioni
2019-02-20 18:25:31 +08:00
这是科普么?为啥不搞一个 ddns ?
tees
2019-02-20 19:07:18 +08:00
@northernlights 应该是通过 moon 来中转吧。我没搭建过 moon。
itgoyo
2019-02-22 12:30:00 +08:00
# 高科技用法
- **远程开机卡** (在外面使用易微联远程控制)
- **天猫精灵** (在家里使用声音控制) [天猫精灵到底可以有多酷]

如果你觉得电脑一直开机比较费电不好的话,那么下面我给你们介绍一下一些黑科技用法了


**手机控制电脑开关(易微联 app、微信公众号易微联、小程序易微联三个都能远程控制**

**天猫精灵控制电脑开关(天猫精灵打开办公室插座)**

这个远程开机卡,打开和关闭是不用进入 BIOS 的,感觉就和你的进入休眠和唤醒一样,这是太鸡儿好用了,当然你不舍得花钱的话,直接使用 TeamViewer 吧,设置开机启动,然后设置无人值守密码就行,对了你如果被检测出商业用途 5min 断线的话,给我私信,我有了固定 ip 值,还有防止断线的版本(支持 Mac 和 Windows 版本)


为什么是办公室插座呢,因为天猫精灵现在还不支持自定义命名,所以为了区分我的卧室插座,我把他名字改成了办公室插座,当然还有场景很多名字可以取的,这个由你喜欢。
![]( )

![]( )

![]( )

![]( )

[远程开机卡] TB 上 70+块钱
JoyBanana
2019-02-22 14:30:52 +08:00
我觉的吧,楼主这种贴完全可以发知乎之类的。
这个远程开机,路由做内网穿透,或者配 DDNS。是可以通 wol 来实现的。可以了解一下
itgoyo
2019-02-22 15:12:42 +08:00
@JoyBanana 啊,谢谢啊,学习到了 wol 这个方式,这个是我之前不曾想到过的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536479

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX