乐趣区

树莓派设置远程访问

转载请注明文章出处:树莓派设置远程访问

接上文 组装树莓派 4B 及安装系统,本文是设置在外远程访问家里树莓派的详细步骤。

基本设置

在开始之前,先做一些基本让树莓派能更好的工作。

禁止自动登录

树莓派默认启动后直接进入桌面,不需要用户登录。虽然树莓派常放置于内网,但这样还是很不安全。为了提高安全性和隐私保护,建议禁止自动登录功能。操作方式如下:

  1. 在窗口输入sudo raspi-config,进入命令行交互界面;

    <img src=”https://user-gold-cdn.xitu.io…;h=624&f=jpeg&s=70245″ alt=”raspi-config 界面 ” width=”665″ height=”405″ class=”aligncenter size-large wp-image-5885″ />

  2. 通过上下箭头选“boot options”回车,接着选“desktop/cli”回车。如果你是安装了桌面系统,选择“desktop”,否则选“console”,然后回车;
  3. 界面回到初始选择界面,按“tab”键将光标跳转到 ”finish”,回车。程序会问你是否重启,根据自己需求选“yes”或者 ”no”。

raspi-config是树莓派系统自带的系统配置工具,简单好用且功能强大,没事建议多进去看看。

设置静态 ip

树莓派在家里主要作为服务器,ip 不应该经常变动。固定树莓派 ip 有三种方法:

  1. 通过路由器绑定 ip 和 mac 地址。这需要登录路由器的 web 管理界面,其操作根据型号有所不同;
  2. 在图形桌面中,右键右上角的网络图标,选择“wirelesss&wired network setting”,在出现的设置窗口中选择“interface”,分别设置有线网卡(eth0)和无线网卡 (wlan0) 的 ip 地址、子网掩码、dns 等:

    <img src=”https://user-gold-cdn.xitu.io…;h=556&f=png&s=125469″ alt=” 树莓派网络设置 ” width=”569″ height=”556″ class=”aligncenter size-full wp-image-5886″ />

  3. 手动编辑 /etc/dhcpcd.conf 文件,在文件最末加入类似的如下行:

    interface eth0
    inform 192.168.1.2
    static routers=192.168.1.1
    static domain_name_servers=114.114.114.114
    static ip6_address=2409:8a00:78d8:10b0:9d9e:1193:c495:228f
    
    

远程访问设置

做好基本设置后,让我们正式进入远程访问的设置。

开启 ssh

ssh 几乎是所有服务器必备且最重要的服务之一,但树莓派默认是关闭的,所以要先开启。树莓派上开启 ssh 服务方法有三种:

  1. 命令行中输入:sudo systemctl enble sshd && sudo systemclt start sshd
  2. 使用 raspi-config 命令,在“intefacing options”中选择“ssh”,设置为开启;
  3. 在图形桌面中,点击左上角树莓派 logo,菜单中选择“preferences”->“raspberry pi configuration”,在弹出的窗口中选择“interfaces”-> “ssh”,点击确定。<img src=”https://user-gold-cdn.xitu.io…;h=545&f=png&s=93628″ alt=” 树莓派开启 ssh 访问 ” width=”644″ height=”545″ class=”aligncenter size-full wp-image-5887″ />

设置好后,用 putty 等终端连接树莓派,成功连上则说明设置没问题。

内网穿透

对于在家里部署 nas 或者放置服务器的人来说,内网穿透是必须掌握且绕不过的话题。网络穿透有向日葵、花生壳等收费穿透软件,也有 teamviewer 等远控软件,还有 frp 等开源软件可供选择。本文使用有公网 ip 的 vps 做内网穿透服务器,软件使用开源的 frp 做内网渗透方案,设置步骤如下:

  1. 部署服务端。frp 官网 下载对应服务器系统的软件版本,用 tar -zxvf frp_0.29.0_linux_xxxx.tar.gz 命令解压。然后进入 frp 软件目录,编辑frps.ini。一个简易有授权的配置为:`[common]

bind_port = 你的端口号
token= 认证密钥 接下来启动 frps 服务:nohup ./frps -c frps.ini >> frps.log 2>&1 &`。如果开了防火墙,记得放行相应的端口。

  1. 树莓派上部署客户端。尽管树莓派 4B 用的 64 位处理器,但 raspbian 系统是 32 位的,所以从 frp 官网下载时记得选择”frp_0.29.0_linux_arm.tar.gz“版本。解压后进入 frp 目录,编辑frpc.ini。一个开启 ssh 穿透访问的配置为:

    [common]
    server_addr = 服务器 ip
    server_port = 服务器端口
    token = 服务器密钥
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 希望在服务器上监听的端口
    
    

    配置好后启动 frp 客户端:nohup ./frpc -c frpc.ini >> frpc.log 2>&1 &

配置没有问题的话,通过公网 ip 监听的端口便可 ssh 连到树莓派上。

ssh 隧道是非常强大的功能,[ssh 端口转发的三种方式]一文中对其有比较详细的介绍。实践中强烈建议内网穿透只开启 ssh 端口,其它软件的远程访问通过 ssh 隧道连接,安全且方便。

vnc 远程访问

对于桌面系统来说,能远程查看桌面是最好的。一般来说有两种解决方案:windows 远程桌面那一套的 rdp,以及开源的 vnc。对于一个 linux 玩家来说,vnc 无疑是更好的选择。接下来简要说明 vnc 的配置过程。

  1. 对于接上显示器的树莓派,建议用 vncserviced。三种开启方法同 ssh,命令行命令是:sudo systemctl enable vncserver-x11-serviced && sudo systemctl start vncserver-x11-serviced。树莓派用的 realvnc 服务端,需要下载 realvnc 客户端才能连接;
  2. 设置好后就移除鼠标键盘显示器的树莓派(处于无头“headless”模式),vnc 服务端需要用虚拟桌面。操作方式是:输入 vncserver,vnc 服务端将创建虚拟桌面。然后再通过 realvnc 客户端连接,端口默认是 5901(可以通过netstat -nlpt | grep -i vnc 查看)

实践中不建议通过 frp 对 vnc 连接做内网穿透,尽量选择 ssh 端口转发,加密连接流量。

到此,我们便设置了完美的树莓派远程访问方案,既有命令行的 ssh,也可以通过 vnc 查看远程桌面。

参考

  1. https://www.raspberrypi.org/d…
  2. https://raspberrypi.stackexch…
  3. https://www.jianshu.com/p/308…
退出移动版