ubuntu20.04安装+ros-noetic安装+内网穿透frp

刷机后的系统安装

  • ubuntu20.04安装
  • 安装ros-noetic
  • 安装各种必要的插件
  • 安装vscode
  • 内网穿透连接实验室主机
    • 配置frpc和frps文件
    • 运行
    • 完成自动化部署
    • 免密登录
      • linux的免密登录
      • windows上的免密登录

内网穿透的参考链接:如何优雅地访问远程主机?SSH与frp内网穿透配置教程

ubuntu20.04安装

选择镜像网站:

https://mirrors.tuna.tsinghua.edu.cn/

下载20.04的iso

在vmware中创建新的虚拟机

自定义->下一步
请添加图片描述找自己的影响文件的下载目录

下一步:

设置用户名密码,个性化的全名
请添加图片描述设置名称和存放位置:
请添加图片描述下一步,再下一步,按照有推荐一直下一步,到这里:
请添加图片描述内存设置最好在120G左右(为后续做slam留足空间),放在机械硬盘里面就可以,再下一步

最后完成。

创建好以后可以移出各种外设,包括打印机,软盘,DVD,DVD2等等

安装ros-noetic

首先先修改源的位置,为了git clone的更快

请添加图片描述点开以后在这里:
请添加图片描述在这里选择other,选择阿里云的镜像网站就可以了

安装各种必要的插件

在终端中依次输入:

# 为 apt 添加ROS软件源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'# 为ROS软件源添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654# 更新一下软件源,把ros-noetic的包添加进去
sudo apt update# 安装ros-noetic
sudo apt install ros-noetic-desktop-full# 安装ros-noetic的各种插件
sudo apt install python3-roslaunch python3-rostopic python3-rosnode python3-catkin python3-catkin-tools python3-wstool python3-vcstool# 下面两条安装gtsam
# 安装gtsam的网站:https://gtsam.org/get_started/
sudo add-apt-repository ppa:borglab/gtsam-release-4.0# not necessary since Bionic
sudo apt update  
sudo apt install libgtsam-dev libgtsam-unstable-dev# 这个指令可有可没有
git config --global core.editor vim# 配置pip
sudo apt install python3-pip

最后可以安装zsh

安装zsh的过程:

sudo apt install zsh
sudo apt install git
git clone https://github.com/ohmyzsh/ohmyzsh.git
# 找到oh-my-zsh/tools
# 进入该目录,找到setup.sh
# 运行:
sh ./setup.sh

就结束

同时,将

source /opt/ros/noetic/setup.sh

指令放在~/.bashrc文件的最末尾

如果使用zsh,则将:

source /opt/ros/noetic/setup.zsh

上述指令放在~/.zshrc文件中

检查一下,在.zshrc文件中应该有这几个部分

source /opt/ros/noetic/setup.zsh
source /home/gzc/livox_driver_ws/devel/setup.zsh
# 这里是为了和bashrc文件中的环境一样
export PATH=~/.local/bin:$PATH
# 如果有小车的话,需要有小车的ip
export ROS_MASTER_URL=http://localhost:11311

键盘控制小车运动的功能包:teleop_twist_keyboard(只知道名字,还未实践)

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

安装vscode

网站:https://code.visualstudio.com/

下载:

下载好之后,放进Ubuntu中,双击点开,安装

安装简体中文插件

安装C++插件

创建一个c++文件:1.cpp

随后运行,选择/usr/bin/gcc目录下的c++

ctrl+shift+p唤醒命令窗口

内网穿透连接实验室主机

本机:笔记本电脑

远程机:实验室的虚拟机

服务器:阿里云默认linux服务器

注册一个阿里云的服务器,在github上下载0.38.0的frp的代码,网址:

https://github.com/fatedier/frp/releases?page=3

请添加图片描述先开放服务器端linux的端口号,配置如下:
请添加图片描述下载好以后,进行文件的修改:

linux中:编辑/etc/hosts文件,在文件末尾加上

ssh-server + 公网地址

在windows中,编辑文件C:\Windows\System32\drivers\etc\hosts文件,在文件末尾加上

ssh-server + 公网地址

随后,本机(现在操纵的笔记本电脑)ssh到服务器端,即:

ssh root@ssh-server

实验室的虚拟机,也ssh到服务器端,由此,通道已经打通;

配置frpc和frps文件

请添加图片描述frps.ini文件不需要修改

frpc.ini文件需要修改:

[common]
# 这里的ip地址要改成服务器的ip地址,端口号不变
server_addr = xx.xx.xx.xx
server_port = 7000[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

运行

在服务器端:

找到frps可执行文件在的位置,进入到那个目录,使用以下指令:

cd frps
./frps -c ./frps.ini

如果frps没有执行权限,则在frps的目录下,使用:

chmod +x frps

运行成功后:

请添加图片描述客户端(实验室的虚拟机):

cd frpc
./frpc -c ./frpc.ini

运行成功配图:

请添加图片描述
配置成功,现在就可以使用vscode远程登陆主机了,运行指令:

ssh -p 6000 gzc@ssh-server

输入实验室虚拟机的密码即可登录

完成自动化部署

使用service插件

在服务器端,将下面的代码放在lib/systemd/system/frps.service中

[Unit]
Description=Frp Server Service
After=network.target[Service]
Type=simple
# 这里修改为服务器的主机名
User=root
Restart=on-failure
RestartSec=5s
# 这里修改路径为安装frps可执行文件以及frps.ini文件的路径
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
LimitNOFILE=1048576[Install]
WantedBy=multi-user.target

使用下面的指令:

systemctl daemon-reload
systemctl enable frps
systemctl start frps
systemctl status frps

使用上述指令后,就得到了下面的提示:
请添加图片描述
看到active(running) 就代表启动成功了

在客户端,与服务器端的修改是一样的,不过要使用frpc.service(客户端的)文件

免密登录

需求:本机(笔记本)可以远程访问服务器,免密登录,且免密登录实验室的虚拟机

linux的免密登录

本机的配置:(windows)

首先,在设置 -> 添加可选功能 ->openssh的服务端安装好(用外网)

找到C:\Users\gzc目录下,使用cmd命令:

sshkey-keygen

现在单机.ssh文件夹,可以找到id_rsa.pub公钥

请添加图片描述复制这个公钥,进入虚拟机,在虚拟机的~/.ssh文件夹中,输入以下命令:

# 添加authorized_keys文件
sudo vim authorized_keys

将复制的公钥放在这个文件中,保存,这样就配好了ssh的免密登录(实验室的虚拟机)

公网上的服务器与实验室的虚拟机是一样的配置

windows上的免密登录

如果我现在想要用笔记本登录实验室的windows主机,这样就复杂一些:

将上面复制的公钥粘贴在C:\Users\gzc11 \ .ssh\authorized_keys这个文件中,同时,要设置一下:

C:\ProgramData\ssh文件夹中的配置:

修改的部分在第34,38,51行,同时,将最后两行注释掉了

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key# Ciphers and keying
#RekeyLimit default none# Logging
#SyslogFacility AUTH
#LogLevel INFO# Authentication:#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10PubkeyAuthentication yes# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys#AuthorizedPrincipalsFile none# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none# no default banner path
#Banner none# override default of no subsystems
Subsystem	sftp	sftp-server.exe# Example of overriding settings on a per-user basis
#Match User anoncvs
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server# Match Group administrators
#        AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

第三步:重启ssh服务

找到计算机管理界面->服务,找到openssh-Server,重启一下即可
请添加图片描述
内网穿透参考链接:如何优雅地访问远程主机?SSH与frp内网穿透配置教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310617.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6、JVM-JVM调优工具与实战

前置启动程序 事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用 Jmap 此命令可以用来查看内存信息,实例个数以及占用内存大小 jmap -histo 14660 #查看历史生成的实例 jmap -histo:live 14660 #查看当前存活的实…

SQL12 获取每个部门中当前员工薪水最高的相关信息

题目:获取每个部门中当前员工薪水最高的相关信息 注意了,这道题目,分组函数只能查出来:每个部门的最高薪水,group by dept_no ,根据部门分组,绝对不能group by dept_no,emp_no,不能…

云正在使 IT 受益,但对业务却没有好处

云具有巨大的商业价值!这是云提供商及其盟友在每次云计算会议上高喊的战斗口号。 您永远不会听到我说“云”始终是正确的解决方案,或者就此而言,是错误的解决方案。 在作为云专家 20 多年的时间里,从来没有盲目追随云计算先驱或…

Educational Codeforces Round 164 (Rated for Div. 2)

D. Colored Balls 题意:给你n个颜色不同的小球,以及每种颜色小球的数量,让你求 种集合分割方案的价值和 我们考虑一个集合的贡献,如果最大值大于sum的一半,那么值就是max,反之值就是(sum1)/2 那么我们可…

Docker Desktop修改镜像存储路径 Docker Desktop Start ... 卡死

1、CMD执行wsl -l -v --all 2、Clean / Purge data 3、导出wsl子系统镜像: wsl --export docker-desktop D:\docker\wsl\distro\docker-desktop.tar wsl --export docker-desktop-data D:\docker\wsl\data\docker-desktop-data.tar4、删除现有的wsl子系统: wsl -…

快速寻找可以构建出网通信隧道的计算机

点击星标,即时接收最新推文 本文选自《内网安全攻防:红队之路》 扫描二维码五折购书 为加强内网的安全防范,安全管理员往往会限制内网计算机访问互联网,当然不同机构的限制策略是不一样的,有的完全阻断了内网计算机访问…

【Linux】进程的优先级及linux下进程的调度于切换

目录 ​编辑 1.优先级是什么 2.linux中的优先级是怎么实现的 ps -la 命令查看当前用户启动的进程​编辑 linux下调整优先级: ①先top一下 ②点击r ③需要输入进程的pid ④回车 ​编辑 ⑤输入想将优秀级修改的值: linux进程优先级范围为什么必须是【60,9…

自编译支持CUDA硬解的OPENCV和FFMPEG

1 整体思路 查阅opencv的官方文档,可看到有个cudacodec扩展,用他可方便的进行编解码。唯一麻烦的是需要自行编译opencv。 同时,为了考虑后续方便,顺手编译了FFMPEG,并将其与OPENCV绑定。 在之前的博文“鲲鹏主机昇腾A…

osg场景图的数据结构

1、Scene Graph场景图 场景图是一种描述三维场景的数据结构:它是一个有向无循环图。 OSG中不仅定义了场景图的数据结构,还提供了对这种图数据结构的各种访问方式,或者说是管理方法,如渲染。 2、常见节点 备注:Tranform变换的是模…

小车项目介绍

STM32智能小车基于STM32F103C8T6进行开发 该项目具有OLED,USART串口,ADC测量电压,陀螺仪,超声波测距模块,红外循迹模块,蓝牙模块,按键,电机驱动,电机,舵机,电源等功能 功能详细介绍: OLED模块 使用:OLED显示屏模块 0.96寸 IIC/SPI 选择原因:价格较低、使用方便…

如何在jmeter中把响应中的数据提取出来并引用

jmeter做接口测试过程中,经常遇到请求需要用到token的时候,我们可以把返回token的接口用后置处理器提取出来,但是在这种情况下,只能适用于当前的线程组,其他线程组无法引用到提取的token变量值,所以必须要生…

如何用好PMP项目管理知识

PMP(Project Management Professional,项目管理专业人士)是由国际项目管理协会(PMI)颁发的全球最高级别的项目管理认证,认证需要通过严格的考试,并具备相应的工作经验和教育背景。 作为一名咨询师,我们经常…

vscode和pycharm等idea编写protobuf文件格式化

想在pycharm或者goland等idea中开发protobuf文件的话,可以安装一个插件:protocol-buffers 安装之后,proto文件就会支持高亮和格式化了。 如果是vscode想要编写proto文件,可以安装另外一个插件:vscode-proto3 安装后&a…

C++修炼之路之list模拟实现--C++中的双向循环链表

目录 引言 一:STL源代码中关于list的成员变量的介绍 二:模拟实现list 1.基本结构 2.普通迭代器 const迭代器的结合 3.构造拷贝构造析构赋值重载 清空 4.inserterase头尾插入删除 5.打印不同数据类型的数据《使用模板加容器来完成》 三&#xf…

AGI趋势/创业的从业者

红杉这两年分享了好多AI文章,收录了多篇关于GenAI的观点和文章,涉及GenAI的未来、趋势、应用和挑战等话题。 比如: 2024 年的人工智能:从大爆炸到原始汤 下一个十亿开发者 生成式人工智能的第二幕 AI 的 $200B 问题 将生成式…

2024 MathorCupC题完整解题及成品论文!

C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成,图 1 是一个简化的物流 网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同 流向进行分拣并发往下一个场地,最终使包裹到达消费者手中。分拣中心 管理效率的提升,对整体网络的…

华为ensp中nat server 公网访问内网服务器

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月15日17点30分 NAT服务器是一种在网络边界设备上配置的服务,它允许外部网络的用户访问内部网络中的服务或主机,同时隐藏了内部网络的真实IP地…

快速探索随机树-RRT

文章目录 简介原理算法运动规划的变体和改进简介 快速探索随机树(RRT)是一种算法,旨在通过随机构建空间填充树来有效搜索非凸高维空间。该树是从搜索空间随机抽取的样本中逐步构建的,并且本质上偏向于向问题的大型未搜索区域生长。RRT 由 Steven M. LaValle 和 James J. K…

冯喜运:4.16市场洞察:中东风暴搅动汇市,现货黄金原油走势分析

【黄金消息面分析 】周一(4月15日),欧洲时段黄金价格已经从高点回落,目前交投于2351.52美元/盎司,稍早曾短暂攀至2372美元,未能重现上周收盘时触及的2431美元高位。定于周一晚些时候公布的美国3月零售销售数据也可能对美元汇率产生…

PgSQL之WITH Queries/Statement

PostgreSQL WITH 子句 在 PostgreSQL 中,WITH 子句提供了一种编写辅助语句的方法,以便在更大的查询中使用。 WITH 子句有助于将复杂的大型查询分解为更简单的表单,便于阅读。这些语句通常称为通用表表达式(Common Table Express…