V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
itgoyo
V2EX  ›  程序员

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

  •  
  •   itgoyo ·
    itgoyo · 2019-02-19 12:03:47 +08:00 · 10754 次点击
    这是一个创建于 1864 天前的主题,其中的信息可能已经有所发展或是发生改变。

    个人比较喜欢 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 [email protected] -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 脚本

    50 条回复    2019-02-22 15:12:42 +08:00
    lhstock
        1
    lhstock  
       2019-02-19 12:17:15 +08:00
    真绕 在家弄个内网穿透不就行了。你在公司弄有什么意义。
    itgoyo
        2
    itgoyo  
    OP
       2019-02-19 12:25:23 +08:00
    @lhstock 我弄的就是家里的啊
    brotherlegend
        3
    brotherlegend  
       2019-02-19 12:36:30 +08:00 via iPhone
    没看明白,是科普 ngrok 吗? 我们小白用 frp
    yuanshuai1995
        4
    yuanshuai1995  
       2019-02-19 12:37:47 +08:00
    我是打电话给运营商让他给我分配一个公网 ip,重启下猫就好了···
    vinsec
        5
    vinsec  
       2019-02-19 12:41:27 +08:00
    @yuanshuai1995 运营商管公网 ip 叫专线,貌似非常贵,你怎么操作的?
    yuanshuai1995
        6
    yuanshuai1995  
       2019-02-19 12:53:07 +08:00
    @vinsec #5 不是,这个公网 ip 是动态获取的 不是一个固定的 ip
    jowan
        7
    jowan  
       2019-02-19 12:55:52 +08:00
    ngrok 开源版的有内存泄露问题
    推荐使用 frp 稳定使用 1 年多了
    itgoyo
        8
    itgoyo  
    OP
       2019-02-19 12:56:42 +08:00
    @yuanshuai1995 ngrok-sunny 每次都是固定的,不然我也不会从 ngrok 换到 ngrok-sunny,之前的 ngrok,确实每次都会变
    itgoyo
        9
    itgoyo  
    OP
       2019-02-19 13:01:23 +08:00
    @yuanshuai1995 你运营商这种更好,绝对的,哪里还需要倒弄那么多,如果运营商给分配的话,羡慕。我这是租房的,也不知道能不能弄。
    snoopygao
        10
    snoopygao  
       2019-02-19 13:38:53 +08:00
    我的宽带有公网 IP
    jmc891205
        11
    jmc891205  
       2019-02-19 13:41:06 +08:00
    在稍大一点的公司 第二天 IT 部就给你发警告邮件抄送你老板了
    JackyCDK
        12
    JackyCDK  
       2019-02-19 14:09:55 +08:00
    win10 使用 wsl 呗
    hanxiV2EX
        13
    hanxiV2EX  
       2019-02-19 14:13:10 +08:00
    这是科普通过 ngrok 实现内网开放端口到公网的教程。
    Daming
        14
    Daming  
       2019-02-19 14:14:48 +08:00
    frp、ddns
    zpf124
        15
    zpf124  
       2019-02-19 14:15:06 +08:00
    ngrok 和 frp 大家支持哪个
    zpf124
        16
    zpf124  
       2019-02-19 14:18:32 +08:00


    我是 ddns+端口映射就可以解决问题。
    xiaoxinshiwo
        17
    xiaoxinshiwo  
       2019-02-19 14:20:17 +08:00
    花生壳
    whusnoopy
        18
    whusnoopy  
       2019-02-19 14:20:19 +08:00
    电信联通都比较容易能申请到公网 IP,打客服电话说要求公网 IP 就行了,只是每次拨号后获取到的都可能变,所以需要有一个反向指向的能力

    我在 dnspod.cn 托管了自己的一个域名,其中一个子域名用来指向家里的地址,跑一个脚本检查自己本地的 IP 有没变化,如果变了则通过 dnspod 的 API 去更新域名解析的地址

    运营商可能会封常见端口,所以在自己家的路由器上可能还需要做端口映射,把某个大号外部端口映射到内网机器的 22 端口,同时自家路由器在做静态 IP 分配,保证同一台机器拿到是同一个 IP

    如果公司用的 Windows 10,直接装个 WSL 解决问题,没上面那么多乱七八糟的事情
    Les1ie
        19
    Les1ie  
       2019-02-19 14:21:08 +08:00
    以前 Ngork 现在 frp, 然而硬伤自己延迟低的服务器都是小水管,大水管的延迟高 :(
    beidahuangdehu
        20
    beidahuangdehu  
       2019-02-19 14:22:17 +08:00
    直接内网穿透就行了,怎么这么复杂呢?
    itgoyo
        21
    itgoyo  
    OP
       2019-02-19 14:25:36 +08:00
    @beidahuangdehu 我上面的就是内网穿透,如果你那边有更好的更简洁的方式,请您分享一下,我也试试,后面我汇总出来😘
    JoyBanana
        22
    JoyBanana  
       2019-02-19 14:34:18 +08:00
    这种教程发 V2 没啥意思吧。感觉 V2 人均 frp
    nneedd
        23
    nneedd  
       2019-02-19 14:37:03 +08:00
    frp+1
    Kaiv2
        24
    Kaiv2  
       2019-02-19 14:38:18 +08:00
    自己搭了个 ngrok 服务,隔一段时间就挂了,老是要重启不知道为啥。试试 frp
    JoyBanana
        25
    JoyBanana  
       2019-02-19 14:38:25 +08:00
    借楼问下。树莓派自建 NAS,我家极路由看电影会有卡顿。大家有什么办法吗,还有硬盘休眠很头疼
    laucenmi
        26
    laucenmi  
       2019-02-19 14:40:33 +08:00
    frp+1
    lihongjie0209
        27
    lihongjie0209  
       2019-02-19 14:49:24 +08:00
    ddns
    dongrenwen
        28
    dongrenwen  
       2019-02-19 14:55:46 +08:00
    推荐 ZeroTier One,用过一段时间,感觉还是很好用的。
    http://www.zerotier.com/

    p.s. 这不是在打广告哦,只是推荐而已
    itgoyo
        29
    itgoyo  
    OP
       2019-02-19 14:58:56 +08:00
    看到评论了好多都是 frp 的。我晚点也尝试一下 frp
    pynix
        30
    pynix  
       2019-02-19 15:03:07 +08:00
    阿里云开个小鸡,SSH 反向连接。
    KasuganoSoras
        31
    KasuganoSoras  
       2019-02-19 15:08:33 +08:00   ❤️ 1
    试试 Sakura Frp ?一大堆国内百兆千兆服务器免费用
    自己开发的一个内网穿透管理平台,基于 Frp 改的客户端
    https://www.natfrp.org/
    AlfredL
        32
    AlfredL  
       2019-02-19 15:32:45 +08:00
    最好的办法就是,办一条联通或者电信的宽带,然后和客服说给一下公网 IP...然后 DDNS 解决全部问题
    搬家的话也好说,运营商都提供移机服务,并且好多地方第一次移机还免费
    paouke
        33
    paouke  
       2019-02-19 18:58:01 +08:00
    frp +1,运行半年多了
    snip
        34
    snip  
       2019-02-19 21:24:46 +08:00
    公司电脑装个虚拟机
    vyronlee
        35
    vyronlee  
       2019-02-19 21:27:33 +08:00 via iPhone
    @dongrenwen Zerotier + 1,非常好用
    mosliu
        36
    mosliu  
       2019-02-19 21:50:36 +08:00
    ngrok 不错 不过我用 frp。。。。
    mritd
        37
    mritd  
       2019-02-19 21:58:04 +08:00 via iPhone
    cdlnls
        38
    cdlnls  
       2019-02-19 22:52:58 +08:00 via iPhone
    用家里的电脑连公司的 VPN,然后在公司直接连 VPN 分配给家里电脑的内网地址。延迟低而且速度快。
    ochatokori
        39
    ochatokori  
       2019-02-19 23:44:14 +08:00 via Android
    有公网 ip 就转发,没有就穿透,这不是 v2 的基本技能嘛,应该在知乎发
    northernlights
        40
    northernlights  
       2019-02-19 23:52:07 +08:00 via Android
    你们的 zero 都不慢吗?我的非常慢是咋回事,今天晚上给卸载了。
    Windelight
        41
    Windelight  
       2019-02-20 00:36:05 +08:00 via Android
    @vinsec 我家网络摄像头、就要公网 ip、别人连不上我百度出来的 ip 等等
    tees
        42
    tees  
       2019-02-20 08:51:12 +08:00
    @northernlights 可以通过 ZeroTier moon 来加速
    guanhui07
        43
    guanhui07  
       2019-02-20 10:03:39 +08:00
    frp
    northernlights
        44
    northernlights  
       2019-02-20 12:20:12 +08:00 via Android
    @tees 有 moon 后流量经过服务器中转吗?
    tojysir
        45
    tojysir  
       2019-02-20 13:56:53 +08:00
    虚拟机?
    Variazioni
        46
    Variazioni  
       2019-02-20 18:25:31 +08:00
    这是科普么?为啥不搞一个 ddns ?
    tees
        47
    tees  
       2019-02-20 19:07:18 +08:00
    @northernlights 应该是通过 moon 来中转吧。我没搭建过 moon。
    itgoyo
        48
    itgoyo  
    OP
       2019-02-22 12:30:00 +08:00
    # 高科技用法
    - **远程开机卡** (在外面使用易微联远程控制)
    - **天猫精灵** (在家里使用声音控制) [天猫精灵到底可以有多酷]

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


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

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

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


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

    ![]( )

    ![]( )

    ![]( )

    [远程开机卡] TB 上 70+块钱
    JoyBanana
        49
    JoyBanana  
       2019-02-22 14:30:52 +08:00
    我觉的吧,楼主这种贴完全可以发知乎之类的。
    这个远程开机,路由做内网穿透,或者配 DDNS。是可以通 wol 来实现的。可以了解一下
    itgoyo
        50
    itgoyo  
    OP
       2019-02-22 15:12:42 +08:00
    @JoyBanana 啊,谢谢啊,学习到了 wol 这个方式,这个是我之前不曾想到过的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3347 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:18 · PVG 21:18 · LAX 06:18 · JFK 09:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.