树莓派zero连接wifi

这是一篇记录树莓派连接wifi的文章。

这里我们使用wpa_cli的交互环境来连接无线网,这比直接使用配置要方便得多。注意,wpa_cli需要在root环境下执行

终端下面执行: sudo wpa_cli -iwlan0

-i参数表示使用哪个网卡,我们需要指定只用wlan0这个网卡。具体可以执行ifconfig看看都有哪些网卡可以使用,如果你的树莓派带有wifi模块,那么一般是wlan0

进入交互模式之后,首先需要执行scan命令,该命令能扫描附近的热点。然后输入scan_result列出扫描出来的热点

> scan
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
> scan_result
bssid / frequency / signal level / flags / ssid
00:00:00:00:00:00 2412 -37 [WPA2-PSK-CCMP][ESS] chao

上面扫描出了我的一个手机热点。

我们知道了热点的ssid之后就可以连接了,首先增加一个网络连接,执行add_network

> add_network
3

输出的结果是一个数字,这个是增加的id。然后后面需要用这个id配置一些网络参数,就和可视化的连接网络一样,最简单的就是需要配置网络的ssid,密码。

> set_network 3 ssid "chao"
OK
> set_network 3 psk "yourpassword"
OK

做好了之后就可以启用这个连接了,输入:enable_network 2。下面就会提示连接的信息了

> enable_network 3
OK
<3>Trying to associate with 00:00:00:00:00:00 (SSID='chao' freq=2412 MHz)
<3>Associated with 00:00:00:00:00:00
<3>CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully (based on lower layer success)
<3>WPA: Key negotiation completed with 00:00:00:00:00:00b[PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed [id=2 id_str=]

最后,不要忘了save_config,让这个配置后面可以继续使用

autossh实现树莓派内网穿透

在我写的另一片文章《使用ssh建立反向连接》实现了内网穿透,但连接在长时间不使用时会自动断开。 现在有一个更好的解决方案,使用autossh来实现一个不会断开的反向链接,实现内网穿透。

如何使用

首先在树莓派上安装autossh,命令是:

apt-get install autossh

安装完毕后,启动autossh,可以使用如下命令:

autossh -M 5678 -NR 1234:localhost:22 user@123.123.123.123 -p 222

参数解释:

参数“-M 5678”中,-M指定树莓派的监控端口,此处是5678。树莓派会定时检查该端口,如果不通则会重新发起连接。

命令“1234:localhost:22”中, 1234表示需要在远程主机上开启的端口,22表示本地的ssh端口。这个含义表示我们希望通过公网ip和1234端口访问树莓派的22端口。

user@123.123.123.123 -p222  user为公网机器上的用户,222为公网机器的ssh端口。

免密码登陆

通常情况,建立反向连接时需要登陆公网机器,此时需要输入密码。而开机自启动输入密码显然不现实。此时需要使用sshkey来实现免密码登录。

首先,在树莓派上生成sshkey,命令如下:

ssh-keygen -t rsa

由于我们不需要密码,所以一路回车即可。生成的id_rsa.pub文件在~/.ssh/文件夹里。然后我们将这个key推送到公网机器。命令如下:

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户@主机地址 -p 端口/
(更多…)

你可能还喜欢下面这些文章

开始使用varnish

本文假设你已经安装了varnish了,如果还没安装,那么请看前面的varnish的安装来安装varnish吧!下面的命令将会启动varnishservice varnish start现在你的varnish已经运行了,让我们确保它已经在工作吧!打开浏览器,在地址栏中输入http://127.0.0.1:6081/(你需要把ip替换成你的机器ip)默认的配置将会尝试将请求转发到该台机器上的8080端口上面。如果该台机器上面没有web服务,varnish将会返回Error 503 Service Unavailable。你的web应用可能运行在其他端口或者其他的机器,这需要编辑varnish的配置

ssh实现树莓派的内网穿透

前几天入手了一个树莓派3,然而不幸的是家中的网没有公网IP,直接访问肯定是没戏了,这时候突然想到了打洞这个词,我想ssh打洞肯定是可以的。

经过一番搜索,答案找到了,实现非常简单,步骤如下。

1.原料

实现内网穿透,你首先需要一台在公网的vps,哪个国家的都无所谓。

2.VPS配置

vps开启SSHD的GatewayPorts选项,开启方式如下:

vim /etc/ssh/sshd_config
# 找到GatewayPorts选项,将其变为yes

GatewayPorts yes
# 重启sshd服务
service sshd restart

3.树莓派配置

假设VPS的IP为1.1.1.1,远程转发的端口号为11111(端口号最好高于1024,否则需要使用root权限),远程服务器的ssh端口为22,登陆用户为username;
继续假设本地路由器需要转发的端口为22,路由器的在LAN中的IP地址为192.168.1.1。

当我们确认好了各个数字的意义后,就可以开始替换下面的命令了。

(更多…)