欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Linux系统(Ubuntu和树莓派)的远程操作练习

Linux系统(Ubuntu和树莓派)的远程操作练习

2025/4/18 5:57:32 来源:https://blog.csdn.net/wodeshijiexialey/article/details/147077838  浏览:    关键词:Linux系统(Ubuntu和树莓派)的远程操作练习

文章目录

  • 一、实验一
    • (一)实验准备
    • (二)Ubuntu 下的远程操作
    • (三)树莓派下的远程操作
    • (四)思考
  • 二、实验二
    • 1.talk程序
    • 2. C 编写 Linux 进程间通信(IPC)聊天程序

一、实验一

(一)实验准备

1.双方应保证处于同一个局域网内
2.关闭防火墙
(否则别人将不能 ping 通自己,具体说明请参考:windows-关闭防火墙)
3.配置虚拟机
​ (1)网桥模式配置
​ 查询本机网络连接中的网卡信息,当前本地连接的什么网络就选择哪张网卡(这里我用的无线网络)

在这里插入图片描述
(2)打开虚拟机,设置网络连接为:桥接模式
在这里插入图片描述
(3)在虚拟机菜单:编辑==>虚拟机网络编辑
在这里插入图片描述
在这里插入图片描述
(4)将VMnet0的网卡改为3(1)步windows下使用的网卡

在这里插入图片描述

(5)在控制台输入如下代码
在这里插入图片描述

(6)查看Ubuntu的网卡名称和虚拟机IP
网络名称:一般为ens33
虚拟机IP:192.168.167.109
子网掩码为:255.255.255.0
而此时树莓派IP为:192.168.167.177,windows电脑IP为:192.168.167.142

说明:虚拟机、树莓派和windows电脑在同一个局域网内,都是连的手机热点。
在这里插入图片描述

(二)Ubuntu 下的远程操作

1.创建一个新的用户并将其添加进sudo组,将分配的 IP 地址交给其他同学,让其他同学用 putty 或 xshell 连接

sudo adduser classmate1
sudo usermod -aG sudo classmate1

切换用户:使用终端命令:su - 用户名(需输入密码)
在这里插入图片描述
安装并启动 SSH 服务:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

使用putty登录classmate1
在这里插入图片描述
2.Xming 图形窗口访问
安装 Xming 和XLanuch,打开 XLanuch,默认一直下一页。
在这里插入图片描述
3.配置putty

(1)在配置选项 connection -> SSH -> X11 forwarding 处,将 Enable X11 forwarding 打钩
在这里插入图片描述
(2)然后 session->host name 处填写服务器IP 地址(即Ubuntu的IP地址),再点击 open 连接远程服务器

(3)连接成功后,输入命令 set DISPLAY=xxx.xxx.xxx.xxx:0 ,(xxx.xxx.xxx.xxx是你所使用电脑windows下配置的IP地址)
在这里插入图片描述

(三)树莓派下的远程操作

1.只需要打开树莓派的vnc服务,然后连接过去即可
在这里插入图片描述
2.新建一个用户classmate2

sudo adduser classmate2

用户名:“classmate2”,密码:“123456”

在这里插入图片描述
3.Xming 图形窗口访问(具体操作如上所述,只需将服务器IP 地址修改为树莓派用户为 classmate2IP 地址)
在这里插入图片描述

(四)思考

X窗口协议与远程桌面VNC-viewer协议有什么差异?
X窗口协议与远程桌面VNC-viewer协议有什么差异?
在这里插入图片描述

二、实验二

1.talk程序

(1)方式一:邀请别人
邀请名称为 zhangsc 的用户进行对话
在这里插入图片描述
在这里插入图片描述
(2)被别人邀请
我接受zhangsc的邀请
在这里插入图片描述

(3)聊天过程

在这里插入图片描述

2. C 编写 Linux 进程间通信(IPC)聊天程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>#define SOCKET_PATH "/tmp/chat_socket"int main() {int server_fd, client_fd;struct sockaddr_un addr;char buffer[1024];// 创建 UNIX 域套接字server_fd = socket(AF_UNIX, SOCK_STREAM, 0);if (server_fd == -1) {perror("socket error");exit(EXIT_FAILURE);}// 绑定套接字到文件路径memset(&addr, 0, sizeof(struct sockaddr_un));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);unlink(SOCKET_PATH); // 确保路径可用if (bind(server_fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {perror("bind error");exit(EXIT_FAILURE);}// 监听并接受连接if (listen(server_fd, 5) == -1) {perror("listen error");exit(EXIT_FAILURE);}printf("Server waiting for connection...\n");client_fd = accept(server_fd, NULL, NULL);if (client_fd == -1) {perror("accept error");exit(EXIT_FAILURE);}// 双向聊天循环while (1) {printf("You: ");fgets(buffer, sizeof(buffer), stdin);write(client_fd, buffer, strlen(buffer) + 1);read(client_fd, buffer, sizeof(buffer));printf("Client: %s", buffer);}close(client_fd);close(server_fd);unlink(SOCKET_PATH);return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>#define SOCKET_PATH "/tmp/chat_socket"int main() {int sockfd;struct sockaddr_un addr;char buffer[1024];// 创建并连接套接字sockfd = socket(AF_UNIX, SOCK_STREAM, 0);if (sockfd == -1) {perror("socket error");exit(EXIT_FAILURE);}memset(&addr, 0, sizeof(struct sockaddr_un));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);if (connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {perror("connect error");exit(EXIT_FAILURE);}// 双向聊天循环while (1) {read(sockfd, buffer, sizeof(buffer));printf("Server: %s", buffer);printf("You: ");fgets(buffer, sizeof(buffer), stdin);write(sockfd, buffer, strlen(buffer) + 1);}close(sockfd);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词