7月9号到7月22号研究生训练任务

7月9号到7月22号研究生训练任务

  • 7月9号到7月22号研究生训练任务
    • 1 探索新的笔记方式
      • 1.1 插入链接与图片
      • 1.2 去除图片水印
      • 1.3 坚果云
        • KaTeX数学公式
      • 1.4 使用CSDN做笔记的好处
    • 2 使用并熟悉Linux的基本操作和网络通信
      • 2.1 Linux操作命令
        • 用户和群组
        • 更换镜像源
        • APT 软件工具 (Debian, Ubuntu 以及类似系统)
        • GCC安装测试
      • 2.2 在Ubuntu中调试运行神经网络算法
      • 2.3 远程终端应用
        • 2.3.1 Telnet和Ssh协议
          • Telnet协议
          • Ssh协议
          • 两者主要区别
          • 为什么现在的远程终端都使用SSH协议而不用Telnet了?
        • 2.3.2 常见Ssh客户端下载
          • Putty
          • MobaXterm
          • Xshell
        • 2.3.3 Ubuntu重新配置Openssh
        • 2.3.4 使用Ssh客户端软件访问WSL
          • XShell
          • Putty
          • MobaXterm
        • 2.3.5 VSCode连接WSL
      • 2.4 网络通信和Linux扩展应用
        • 2.4.1 Termux安装
        • 2.4.2 Termux相关配置
        • 2.4.3 手机端termux启动ssh服务
        • 2.4.4 termux配置Python
        • 2.4.5 编程应用
        • 2.4.6 内网穿透技术
        • 2.4.7 cpolar实现内网穿透
        • 2.4.8 手机termux实现内网穿透
    • 3 《pytorch生成对抗网络编程》

7月9号到7月22号研究生训练任务

1 探索新的笔记方式

1.1 插入链接与图片

链接: CSDN

直接点击CSDN模块“图片”,选择图片上传即可。
7月9号到7月22号研究生训练任务_第1张图片
在图片链接后方加入#pic_center =1000x500即可调整图片居中和尺寸

![在这里插入图片描述](https://img-blog.csdnimg.cn/a7fad4d4dafd4eef90e1b8be1b10ff19.png#pic_center =1000x500)
7月9号到7月22号研究生训练任务_第2张图片

1.2 去除图片水印

创作中心,找到设置博客设置,取消勾选图片水印
7月9号到7月22号研究生训练任务_第3张图片

1.3 坚果云

坚果云是一款便捷、安全的专业网盘产品,通过文件自动同步、共享、备份功能,为用户实现智能文件管理,提供高效办公解决方案。
坚果云是微软加速器云存储合作伙伴,IBM全球创业企业扶持计划成员,安全稳定的服务着数百万企业用户,包括东风雷诺、郑州日产、上海通用、银河证券、中石油、中海油、阿里巴巴等大型企事业单位。
7月9号到7月22号研究生训练任务_第4张图片

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

在手机中的坚果云markdown查看器中查看导出的.md文件,公式和图片可以正常显示
7月9号到7月22号研究生训练任务_第5张图片

1.4 使用CSDN做笔记的好处

  • 便捷、语法相对简单、上传图片导入导出等较为方便
  • 容易保存,方便随时查看,联网即可

2 使用并熟悉Linux的基本操作和网络通信

2.1 Linux操作命令

用户和群组
  • groupadd group_name 创建一个新用户组
  • groupdel group_name 删除一个用户组
  • groupmod -n new_group_name old_group_name 重命名一个用户组
  • useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
  • useradd user1 创建一个新用户
  • userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
  • usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
  • passwd 修改口令
  • passwd user1 修改一个用户的口令 (只允许root执行)
  • chage -E 2005-12-31 user1 设置用户口令的失效期限
  • pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
  • grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
  • newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
更换镜像源

打开sources.list文件修改 (可以用gedit、vim等来修改)
sudo vim /etc/apt/sources.list

往里面添加目标源的配置文件 (例如Ubuntu16.04的清华源),最后保存即可。
清华源https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
7月9号到7月22号研究生训练任务_第6张图片
最后刷新数据源
sudo apt-get update

APT 软件工具 (Debian, Ubuntu 以及类似系统)
  • apt-get install package_name 安装/更新一个 deb 包
  • apt-cdrom install package_name 从光盘安装/更新一个 deb 包
  • apt-get update 升级列表中的软件包
  • apt-get upgrade 升级所有已安装的软件
  • apt-get remove package_name 从系统删除一个deb包
  • apt-get check 确认依赖的软件仓库正确
  • apt-get clean 从下载的软件包中清理缓存
  • apt-cache search searched-package 返回包含所要搜索字符串的软件包名称
GCC安装测试

Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。

安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装该软件包就可以了。

安装方法如下:
sudo apt-get install build-essential

gcc -v查看版本
7月9号到7月22号研究生训练任务_第7张图片
sudo vim test.c创建一个新的C语言程序
7月9号到7月22号研究生训练任务_第8张图片
g++ test.c编译文件,生成可执行文件
./a.out执行可执行文件a.out
在这里插入图片描述

2.2 在Ubuntu中调试运行神经网络算法

运行作者的代码,在测试集上的正确率有97.48%
7月9号到7月22号研究生训练任务_第9张图片

2.3 远程终端应用

2.3.1 Telnet和Ssh协议
Telnet协议

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。

Telnet是位于OSI模型的第7层—应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:

  • Telnet定义一个网络虚拟终端为远程系统提供一个标准接口。客户机程序不必详细了解远程系统,他们只需构造使用标准接口的程序;
  • Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项; .
  • Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
Ssh协议

**SSH(Secure Shell)**安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可以在不安全的网络中对网络服务提供安全的传输环境,实现SSH客户端和SSH服务器端的连接,所以SSH是基于客户端-服务端模式。
SSH采用口令和密钥两种用户验证方式,这两者都是通过密文传输数据的。
ssh 用户名@远程主机ip:首次登陆需要下载对方公钥。 示例:ssh 192.168.1.100

两者主要区别
  • 安全性:最大的区别是安全性。Telnet是不安全的,因为它在传输数据时不加密,而SSH使用加密技术确保数据的保密性和完整性。
  • 加密认证:SSH使用公钥/私钥加密来进行身份验证,而Telnet没有这种加密认证机制,只使用简单的用户名和密码登录。
  • 端口:Telnet通常使用23号端口,而SSH使用22号端口。
为什么现在的远程终端都使用SSH协议而不用Telnet了?

主要原因是SSH协议提供了更高的安全性。在互联网时代,网络攻击和嗅探变得更加普遍,传输敏感信息的不安全性成为一个严重的问题。使用Telnet协议进行远程登录可能导致重大的安全风险,因为攻击者可以轻易地截取和查看未加密的数据,包括用户名和密码。

SSH协议通过加密数据,使用公钥/私钥认证来提供更安全的远程访问。这意味着即使数据在传输过程中被拦截,攻击者也无法解读其内容。同时,SSH还提供了更强大的认证方式,使得中间人攻击变得非常困难。

2.3.2 常见Ssh客户端下载
Putty

下载地址:PuTTY: a free SSH and Telnet client
7月9号到7月22号研究生训练任务_第10张图片

打开putty,默认就会进入Session界面,在此界面上输入host名或ip及端口点击Open就会开始会话连接。连接类型有:SSH(默认的连接协议建议使用此协议), serial,Telnet, Rlogin,SUPDUP等。

MobaXterm
  • 支持各种连接 SSH,X11,RDP,VNC,FTP,MOSH
  • 支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…)
  • 连接 SSH 终端后支持 SFTP 传输文件
  • 各种丰富的插件(git/dig/aria2…) 可运行 Windows 或软件

MobaXterm 分免费开源版和收费专业版:下载官网免费开源版
7月9号到7月22号研究生训练任务_第11张图片
7月9号到7月22号研究生训练任务_第12张图片

Xshell

XShell 是一种流行且简单的网络程序,旨在模拟虚拟终端。XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。它支持 RLOGIN、SFTP、SERIAL、TELNET、SSH2 和 SSH1,可以非常方便的对Linux主机进行远程管理。除此之外,其还有丰富的外观配色方案以及样式选择。

Xshell免费版官网下载地址:https://www.xshell.com/zh/free-for-home-school/
7月9号到7月22号研究生训练任务_第13张图片

2.3.3 Ubuntu重新配置Openssh

完全卸载
sudo apt-get remove openssh-server openssh-client --purge -y

安装
apt-get install openssh-server openssh-client

修改ssh的配置
sudo vim /etc/ssh/sshd_config

允许登录者使用密码验证(下图no改为yes)
在这里插入图片描述
这里取消注释,设定端口号、密钥、本地监听
7月9号到7月22号研究生训练任务_第14张图片
ifconfig查看虚拟机IP
7月9号到7月22号研究生训练任务_第15张图片

2.3.4 使用Ssh客户端软件访问WSL
XShell

创建新会话,输入IP。
7月9号到7月22号研究生训练任务_第16张图片
输入WSL2中的用户名
7月9号到7月22号研究生训练任务_第17张图片
输入密码。7月9号到7月22号研究生训练任务_第18张图片
成功连接7月9号到7月22号研究生训练任务_第19张图片

Putty

输入IP
7月9号到7月22号研究生训练任务_第20张图片
分别输入用户名和密码,登入成功。
7月9号到7月22号研究生训练任务_第21张图片

MobaXterm

打开客户端后发现它自适应本机的WSL2,直接可以启动。
7月9号到7月22号研究生训练任务_第22张图片
点击seesionSSH,填写用户名。
7月9号到7月22号研究生训练任务_第23张图片
成功登入。
7月9号到7月22号研究生训练任务_第24张图片
我们能够通过windows的超级终端 Windows terminal 访问子系统,那么为什么我们还要通过ssh客户端来访问子系统呢?

  • 标准化远程访问:SSH是一种标准的远程登录协议,在几乎所有操作系统和网络设备中都得到支持。这使得使用SSH客户端可以跨平台地访问和管理子系统或远程服务器。

  • 安全性:SSH提供加密通道来传输数据,确保在网络中传输的信息被保护。这对于远程访问是至关重要的,特别是当您需要在不受信任的网络上工作时。

  • 远程管理:SSH客户端使您能够在子系统或远程服务器上执行命令,管理文件和目录,安装软件,监控系统状态等。这是与远程Linux系统交互的强大工具。

  • 灵活性:使用SSH客户端,您可以根据需要选择与子系统交互的方式。有些用户可能更喜欢在终端中键入命令,而有些用户可能更喜欢通过SSH图形界面(如X11转发)运行图形化应用程序。

  • 适用于非Windows系统:尽管Windows现在原生支持WSL 2,但一些用户可能仍然在使用旧版本的Windows或其他操作系统,因此SSH仍然是一个通用的选择,可以在各种环境中使用。

  • 网络环境的限制:在某些网络环境中,可能会限制对WSL 2的访问或使用特定的防火墙规则,而SSH可以是一个可行的替代方案。

2.3.5 VSCode连接WSL

下载拓展Remote Development,里面包含了4个拓展包。
7月9号到7月22号研究生训练任务_第25张图片
我在服务器上的权限范围为worm,服务器ip为172.31.192.187,端口号为22,则输入:ssh [email protected] -22,点击enter,输入密码,即可创建连接。
7月9号到7月22号研究生训练任务_第26张图片
修改config设置
7月9号到7月22号研究生训练任务_第27张图片
鼠标移至想要链接的服务器,点击出现的按钮
在这里插入图片描述
输入登录密码,回车确认
7月9号到7月22号研究生训练任务_第28张图片
在终端中可以正常使用
在这里插入图片描述
安装Jupyter拓展,之前已经安装过,但是仍然显示灰色报错:
此扩展在此工作区中被禁用,因为其被定义为在远程扩展主机中运行。请在 'SSH: WSL2' 中安装扩展以进行启用。

解决方法:需要在SSH:WSL中安装。

选择正确的conda环境后,可以正常编译Python程序。
7月9号到7月22号研究生训练任务_第29张图片

2.4 网络通信和Linux扩展应用

2.4.1 Termux安装

Termux 是一个 Android 下一个高级的终端模拟器,开源且不需要 root,支持 apt 管理软件包,十分方便安装软件包,完美支持 Python、 PHP、 Ruby、 Nodejs、 MySQL等。随着智能设备的普及和性能的不断提升,如今的手机、平板等的硬件标准已达到了初级桌面计算机的硬件标准,用心去打造 DIY 的话完全可以把手机变成一个强大的极客工具。

下载地址:F-Droid市场安装
7月9号到7月22号研究生训练任务_第30张图片7月9号到7月22号研究生训练任务_第31张图片

2.4.2 Termux相关配置

更换国内源
pkg update

要在termux中管理和访问文件,则必须键入以下命令
termux-setup-storage

安装基础工具
pkg install vim curl wget git tree -y

执行过上面的一键配置脚本后,并且授予 Termux 文件访问权限的话,会在家目录生成 storage 目录,并且生成若干目录,软连接都指向外置存储卡的相应目录:
7月9号到7月22号研究生训练任务_第32张图片
安装SSH
pkg install openssh -y
7月9号到7月22号研究生训练任务_第33张图片
在同一个局域网中,手机和计算机可以互相ping通。手机ping通计算机需要关闭计算机的防火墙。
7月9号到7月22号研究生训练任务_第34张图片7月9号到7月22号研究生训练任务_第35张图片

2.4.3 手机端termux启动ssh服务

上面安装好SSH后,手动启动ssh服务
sshd

在putty等软件配置正确的IP和端口号8022
7月9号到7月22号研究生训练任务_第36张图片

输入正确的用户名和密码,成功登录。
7月9号到7月22号研究生训练任务_第37张图片

2.4.4 termux配置Python

Termux 安装 Python 默认版本是 Python3 的版本,与此同时也顺便安装了 clang
pkg install python -y

安装完成后,查看下 clangPython 的版本:
7月9号到7月22号研究生训练任务_第38张图片
升级PIP版本
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

2.4.5 编程应用
import time
start_time = time.time()    # 程序开始时间
sum=0
for i in range(100001):
    sum+=i
end_time = time.time()    # 程序结束时间
run_time = end_time - start_time    # 程序的运行时间,单位为秒
print(run_time)
print(sum)

在termux手机终端中运行时间为:0.0162124s
7月9号到7月22号研究生训练任务_第39张图片
在WSL2 Ubuntu中运行时间为:0.0069413s
在这里插入图片描述
在Windows中运行时间为:0.0069735s
7月9号到7月22号研究生训练任务_第40张图片

2.4.6 内网穿透技术

内网穿透技术是一种允许用户从公共网络(比如互联网)访问处于内部网络(局域网)中的设备或服务的方法。通常情况下,局域网中的设备由于位于防火墙或路由器后面,没有直接的公共IP地址,因此无法从互联网上直接访问。内网穿透技术通过一系列的技术手段,将公网与私网进行桥接,使得用户可以通过公网IP地址访问到内部网络的设备或服务。

内网穿透的应用场景包括但不限于以下几种:

  • 远程访问:允许用户在外出或旅行时,通过互联网访问位于家庭或公司局域网中的文件、摄像头、打印机等设备,实现远程工作或监控等功能。

  • 服务器访问:如果您在家中有一台Web服务器或FTP服务器,通过内网穿透技术,您可以让外部用户通过公网访问这些服务,而无需将服务器直接暴露在公网中,提高了安全性。

  • IoT设备远程控制:可以通过内网穿透技术远程控制家中或公司中的物联网设备,如智能家居设备、智能摄像头等。

  • 跨平台连接:内网穿透技术使得不同平台之间可以进行网络通信,比如将本地的Windows设备与远程的Linux服务器进行连接。

  • 临时演示或支持:在某些情况下,为了进行临时的演示或技术支持,内网穿透技术可以帮助远程的技术支持人员访问用户的内部网络,从而更好地解决问题。

2.4.7 cpolar实现内网穿透

cpolar是一种安全的内网穿透云服务,它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务,是一款内网穿透软件。只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关等云端服务,提高编程效率。

下载cpolar软件安装包:下载-cpolar极点云

注册登录账号,下载安装,并拿到隧道 Authtoken
7月9号到7月22号研究生训练任务_第41张图片
安装cpolar之后,进入到安装根目录,双击执行cpolar.exe可执行文件。
7月9号到7月22号研究生训练任务_第42张图片
配置 Authtoken
cpolar authtoken xxxxxxx

简单内网端口穿透体验,登录到WSL中的Jupyter中
cpolar http 30001
7月9号到7月22号研究生训练任务_第43张图片
通过以上操作,我们就可以通过cpolar所映射的域名:https://76b322d2.r2.cpolar.top ,访问我们内网服务器中30001端口启动的服务。

例如:我在30001端口启动了一个WSL中的Jupyter服务,我们是可以直接通过域名进行访问的,但是显示403:forbidden,还需要后续给权限。
在这里插入图片描述
我们可以通过状态监听面板来发现我们启动cpolar服务。
7月9号到7月22号研究生训练任务_第44张图片

2.4.8 手机termux实现内网穿透

3 《pytorch生成对抗网络编程》

暂时没有阅读。

你可能感兴趣的:(网络)