Answers:
这是我今天尝试过的Ubuntu的解决方案(该想法也适用于Windows或Mac),它就像一个魅力。
材料
Ubuntu上的前提条件
安装网络管理器
$sudo apt-get install network-manager
安装nmap
$sudo apt-get install nmap
在笔记本电脑上编辑有线连接(Ubuntu)
通过以太网交叉电缆共享笔记本电脑的WiFi连接
使用以太网电缆将RPi与笔记本电脑连接起来
查找以太网连接(笔记本电脑)的广播地址,
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
使用此地址找出您的RPi的IP地址,在我的情况下为10.42.0.96,因为10.42.0.1是我的笔记本电脑
$nmap -n -sP 10.42.0.255/24
Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-20 23:07 CET Nmap scan report for 10.42.0.1 Host is up (0.00031s latency). Nmap scan report for 10.42.0.96 Host is up (0.0023s latency). Nmap done: 256 IP addresses (2 hosts up) scanned in 2.71 seconds
从笔记本电脑登录到RPi(带有X-forwarding的-Y)
$ssh -Y pi@10.42.0.96
瞧!现在,您的RPi已连接到笔记本电脑,并且RPi可以共享WiFi连接。
pi@raspberrypi ~ $
使用RPi共享笔记本电脑的显示器和键盘
在Raspberry Pi上安装vncserver
$ sudo apt-get update
$ sudo apt-get install tightvncserver
通过下载RealVNC(它支持多个平台)在笔记本电脑上安装vncviewer( http://www.realvnc.com/download/vnc/)
为了能够从VNC服务器<-> VNC查看器复制和粘贴,您需要在RPi上安装自动剪切器。
$sudo apt-get install autocutsel
如果此站点不起作用,请尝试直接从镜像站点下载.deb,例如mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
并安装
$sudo dpkg -i autocutsel_0.10.0-1_armhf.deb
在RPi上启动vncserver(安装自动剪切程序后必须重新启动vncserver,可以发出$vncserver -kill :1
)
$vncserver :1
将autocutsel -fork添加到/home/pi/.vnc/xstartup
#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey autocutsel -fork #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession
在笔记本电脑上启动vncviewer
$vncviewer
将弹出一个vncviewer窗口,并输入RPi的IP地址(由笔记本电脑提供),然后键入端口1,即您的VNC服务器。例如:在我的情况下为10.42.0.96:1。
通过输入密码(自行设置密码)将其连接到RPi上托管的vncserver。
12.现在您可以在笔记本电脑上看到RPi的桌面,然后打开浏览器以显示共享的WiFi连接也正常工作。
network-manager
,只需使用默认的“网络设置” GUI。您应该单击“添加”而不是“编辑”。nmap
只是不需要cat /var/lib/misc/dnsmasq.leases
。请参阅:interlockroc.org/2012/12/06/raspberry-pi-macgyver
没有路由器+没有屏幕+常规以太网电缆+ RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
首先,我们必须在Pi上启用SSH服务器,为安全起见默认禁用该服务器。
如果您已经通过非SSH方法(例如屏幕+键盘或UART)在Pi上安装了外壳,请运行:
sudo systemctl enable ssh
sudo service sshd start
如以下网址所述:https : //raspberrypi.stackexchange.com/questions/58478/ssh-not-working-with-fresh-install这在整个引导过程中仍然存在。
否则,请将SD卡插入主机,然后ssh
在boot/
分区中创建一个名为file的空文件。
在Ubuntu主机上,它会自动挂载,您可以执行以下操作:
sudo touch /media/$USER/boot/ssh
您可以通过以下方式确认:
lsblk
其中包含:
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 43.9M 0 part /media/ciro/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/ciro/rootfs
如果您未在Pi上启用SSHD守护程序,则SSH连接将失败,并显示以下信息:
ssh: connect to host 10.42.0.160 port 22: Connection refused
当我们稍后尝试时。
启用SSH服务器后
接下来,启动Pi,并将以太网电缆从笔记本电脑直接连接到Pi:
在Ubuntu 17.04上,要解决此答案中提到的错误,您首先需要:
sudo apt-get install dnsmasq-base
在主机上,打开网络管理器:
nm-connection-editor
去:
+
签名(添加新连接)在主机上找到Pi的IP:
cat /var/lib/misc/dnsmasq.leases
输出类似:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
是IP,则照常:
ssh pi@10.42.0.160
我也有以下内容.bashrc
:
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
请注意,在Pi内部,它可以通过主机的其他接口正常访问Internet:
ping google.com
例如,在我的笔记本电脑上,Pi占用了以太网,但是主机也通过WiFi连接到了互联网。
是交叉线并非如果主机网卡需要支持自动MDI-X 。大多数最新硬件就是这种情况,例如我测试过的2012联想T430,它具有 “英特尔®82579LM千兆网络连接”,其中记录了对Auto MDI-X的支持。
现在您还可以:
UART串行USB转换器
如果您只想在Pi上安装Shell,则可以使用SSH替代:https : //en.wikipedia.org/wiki/Serial_port
这不使用SSH或网络本身,而是使用较旧,更简单,更直接,更可靠,带宽更低,距离更短的串行接口。Pi无法通过这种方法访问Internet。
台式计算机仍然具有一个串行端口,您可以将其直接与Pi进行线对线连接,但是大多数笔记本电脑都隐藏了这些端口,因此我们需要购买便宜的USB适配器。我在这里使用过:https : //www.amazon.co.uk/gp/product/B072K3Z3TL另请参阅:https : //unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-和-ttyama0-in-linux / 367882#367882
首先将SD卡插入主机,然后编辑config.txt
第一个分区中存在的文件以添加:
enable_uart=1
如以下网址所述:https://www.raspberrypi.org/forums/viewtopic.php?f = 28&t = 141195
第一个分区包含引导加载程序,其配置文件和(Linux /您的)内核,config.txt
它们是其中之一。第二个分区包含实际的Linux根文件系统。
现在,通过以下方式将计算机连接到Pi:
您只需要连接3条电缆:
这也记录在:https : //www.raspberrypi.org/documentation/usage/gpio/README.md
注意不要将地面连接到5V,因为这样做,我已经烧掉了2个UART到USB芯片和一个RPI UART!
您根本不需要将5V连接到5V。我认为您可以像这样为Pi供电,但是我读到这是一个坏主意,只需使用常规的USB电源即可。
最后,将连接器的USB端插入主机,并获得带有以下内容的外壳:
sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
退出Ctrl-A \
。
这是Adafruit播放的视频,显示它:https : //www.youtube.com/watch?v= zUBPeoLW16Q
也可以看看
关于RPI SE的类似问题:https : //raspberrypi.stackexchange.com/questions/3867/ssh-to-rpi-without-a-network-connection
我刚刚实施并成功测试了它。与我的项目一样,要连接到没有路由器或wifi的Raspberry Pi。只需一条简单的以太网电缆。
使用ssh putty程序将地址作为
raspberrypi.local
登录并可以访问终端。
或者,如果设置了VNC服务器,请使用VNC服务器并放置
raspberrypi.local:1
在服务器地址。输入您的VNC服务器密码,您现在可以使用GUI进行所需的操作。
在可能的情况下,它是在远程位置运行脚本。在张贴海报的情况下,请安全关闭Pi。简单的丘疹。
elderberryphi.local
这是Windows用户仅通过以太网电缆和DHCP服务器连接到RPi的说明。无需交叉电缆,因为RPi可以处理。我有一个博客贴子,这个文件与图片在这里这可能是更容易遵循。
资料下载
下载适用于Windows的DHCP服务器(下载链接在此处)。解压缩该zip文件并打开dhcpwiz应用程序,它将配置DHCP服务器。
DHCP服务器配置
在第一个屏幕上点击下一步。
在第二个屏幕上,查找“本地连接”行,并验证其IP地址为0.0.0.0
,状态为enabled
。将以太网电缆从RPi连接到笔记本电脑,然后打开Pi。在此屏幕上单击刷新,直到IP地址更改为169.254.*.*
。如果还有其他问题,则应更改“本地连接”的网络设置(确保它不是静态IP / DNS)。单击此“本地连接”行,然后单击下一步。
检查HTTP (Web Server)
。这使查找RPi的IP地址变得更加容易。点击下一步。
使用默认设置,然后单击“下一步”,直到进入Writing the INI file
屏幕。检查Overwrite existing file
并点击Write INI file
按钮。然后点击下一步。
在最后一个屏幕上,检查Run DHCP server immediately
并点击“完成”。
DHCP服务器并获取Raspberry PI的IP地址
这将使用您在上一个向导中刚刚创建的配置启动实际的DHCP服务器。单击Continue as tray app
按钮,DHCP服务器将最小化到您的系统托盘中。
从现在开始的1秒钟到5分钟之间,您将在笔记本电脑的系统托盘上看到警报,并在RPi的新IP地址上看到警报。此警报真的很快,您可能会错过它。通常,您的RPi的IP是169.254.0.2
,但也可能是IP *.01
。通过http://localhost/dhcpstatus.xml可以更轻松地访问DHCP服务器的Web UI 。这会将主机名列为“ raspberrypi”及其IP地址。
现在,您可以将腻子或远程桌面放入RPi,并配置其无线设置或您想要执行的任何操作。
故障排除
这可能有点挑剔。我的连接似乎断开了,无法使用IP地址重新进行SSH。通常,我可以重新启动Pi并再次获取IP地址。有时我必须重新启动RPi和DHCP服务器。有时我必须做多次。在有15分钟没有连接的时候,我将dhcpsrv2.5.1文件夹中的所有文件复制到一个新文件夹中,然后重试。它立即起作用。
您可以使用交叉以太网电缆-http://en.wikipedia.org/wiki/Ethernet_crossover_cable
假设您的RPi是DCHP客户端,那么最好在笔记本电脑上运行简单的DHCP服务器为RPi分配IP地址。
是的,您可以将树莓派直接连接到PC,而无需路由器。为此,有必要将树莓派和您的计算机放在同一子网中,并且它们都配置了静态ip(并且在两个设备之间连接了以太网电缆)。
理想的配置如下:
eth0上的Raspberry:IP:192.168.1.10子网:255.255.255.0
您的PC: IP:192.168.1.11子网255.255.255.0
要在树莓派上设置手动IP,您可以按照本指南进行操作
在您的PC中,您可以在网络适配器设置中设置手动IP,具体步骤取决于您的操作系统。
配置两个静态IP后,可以使用IP集(192.168.1.10)通过SSH连接到树莓派。
另一个更简单的方法是在GPIO上附加一个按钮以关闭树莓派!在这里看看!
对我有用的是Nicole Finnie和Ciro Santilli的答案以及其他地方的一些答案的结合。
我们将需要做两件事:在pi上激活ssh,并将pi配置为使用静态ip。
在sd卡ssh
的启动分区(而不是/boot
根分区中的文件夹)中添加一个名为的文件。这在其他地方有据可查。
/etc/dhcpcd.conf
在pi的SD卡上打开,然后取消注释静态ip的示例(从第40行开始)。将地址设置为
# Example static IP configuration:
interface eth0
static ip_address=10.42.0.182/24
static routers=10.42.0.1
static domain_name_servers=10.42.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
首先,请确保networkmanager
已在笔记本电脑上安装(带有GUI)。然后,确保dnsmasq
在不作为服务运行:
systemctl status dnsmasq
如果这个命令打印该服务被停止,那么你是好。
接下来,我们必须配置networkmanager
。打开/etc/NetworkManager/NetworkManager.conf
并在顶部添加以下两行:
[main]
DNS=dnsmasq
然后重启。此步骤可能不是必需的。重新启动NetworkManager
服务可能就足够了。现在转到NetworkManager
GUI(通常通过屏幕角的图标访问),然后选择。Edit Connections...
在弹出的窗口中,单击+
图标以创建新的连接。选择Ethernet
作为类型,然后按Create...
。转到IPv4 Settings
选项卡,然后选择方法Shared to other computers
。给连接起一个好名字并保存。
连接Raspberry Pi,并确保您的笔记本电脑使用新连接作为其以太网连接。如果是的话,您的pi现在应该已经有一个由您的PC提供的ip。您可以先运行来找到它ifconfig
。这应该给您几个文本块,每个网络接口一个。您对类似enp0s25
或的东西感兴趣eth0
。它应该有一行读起来类似于
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
看广播地址的行(在这种情况下为10.42.0.255
)。如果与我的不同,请关闭pi的电源,然后将SD卡放回笔记本电脑,以将更static ip_address
改为前三个数字与您的广播地址中的相同。同时将static routers
和的第一个更改为domain_name_servers
笔记本电脑的inet
地址。重新打开pi并连接。ifconfig
再次运行以查看地址未更改。
ssh pi@10.42.0.182
如果得到connection refused
,则pi不在ssh
服务器上运行。如果得到host unreachable
,对不起。
希望这对某人有帮助!