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

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

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

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

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

使用方法

  • Download ngrok

  • unzip /path/to/ngrok.zip

  • ./ngrok authtoken xxxxxxxxxxxxWcfNsonk2xxxxxxxxxxxxxx

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

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

./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脚本

推荐阅读更多精彩内容