yanhy的学习记录匣 - java https://yanhy.top/index.php/search/java/ zh-CN 探索知识的宝箱,记录成长的脚步。欢迎来访Yanhy的博客站,在这里,每一页都是对知识无尽好奇的见证,每个故事都是学习旅程中的珍贵篇章,一起激发灵感,分享进步 Tue, 29 Mar 2022 06:34:00 +0800 Tue, 29 Mar 2022 06:34:00 +0800 在树莓派Linux多方式安装Java https://yanhy.top/index.php/archives/66/ https://yanhy.top/index.php/archives/66/ Tue, 29 Mar 2022 06:34:00 +0800 yanhy2000

(已更新Zsh无法使用环境变量问题)

一:使用apt自动化安装jdk

一般如果需要运行java程序时,需要一个简单、稳定的jdk或者jre环境,如下操作即可快速搭建java环境...

使用指令 sudo apt search jdk 即可搜索软件源中的jdk各类版本,找到需要的版本并复制下包名,使用 sudo apt install 包名 即可安装,如图:

08970-os7hivfel8f.png

通常情况下安装这个版本即可,使用指令 sudo apt install openjdk-11-jdk
26914-oud8vb3ztd.png

二:手动下载安装自己所需jdk版本

如果所需的应用需要特定java环境或者想安装更新版本,可以去手动下载安装包,然后上传并解压等...

下载JDK

java常见下载站:

以AdoptOpenJDK为例,我们本篇文章是为树莓派安装jdk环境,因此选择的“其他平台”

本文推荐选择OpenJDK 11 ,此版本为长期支持版,较稳定,且此版本可以通过上面方法一快速安装。本文演示了OpenJDK 15版本的手动安装

依次选择 OpenJDK 15 —— HotSpot,在下面Operating System出选择Linux,Architecture处选择系统版本
如果是树莓派官方系统,应选择arm32,除非你的树莓派是安装了64位系统版本

09556-tiitxuhl51r.png

在下面筛选出的版本中选择JDK版本下载(如果没有编译等生产需求,可以下载JRE版本,文件体积较小)

55141-nkoerhtmlos.png


配置JDK

下载完后将压缩包上传至树莓派内,并解压,指令为 tar -zxvf 压缩包名

66816-ekjbxw8gywd.png

使用指令 mv ./jdk-15.0.2+7 /usr/java 将解压出的文件夹放在 /usr/java 文件夹,或者也可以放到 /etc/java 等其他地方,记下路径,可以输入 pwd 查看当前路径,选中后右键即可复制
59399-efuj3cic6gw.png

配置环境变量:

sudo nano /etc/profile

在文件末尾添加上以下内容:

export JAVA_HOME=/usr/java/jdk-15.0.2+7
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

其中,第一行的路径应该改成java存放的位置,如上述中我将解压出来的 jdk-15.0.2+7 文件夹放到了 /usr/java/ ,因此第一行填入当前的路径
15474-y0avhlpu0md.png

修改完毕后按 Ctrl+O 保存,按 Ctrl+X 退出编辑
输入 source /etc/profile 刷新环境变量(无需重启)
输入 java -version 查看版本信息,如果出现版本信息即为安装成功
49859-ann0n9ewz1.png


新增zsh解决

如果安装了zsh,在zsh下使用java指令会显示

zsh: command not found: java

此时可以将/etc/profile添加的内容复制到用户目录下的.zshrc文件内,然后再输入

source .zshrc

如图:

1111111.png

本文到此结束,感谢支持!

]]>
0 https://yanhy.top/index.php/archives/66/#comments https://yanhy.top/index.php/feed/search/java/
Termux——安卓终端快速入门 https://yanhy.top/index.php/archives/98/ https://yanhy.top/index.php/archives/98/ Mon, 13 Sep 2021 19:59:00 +0800 yanhy2000

为了学习linux,很多时候都是选择装个虚拟机,或者买个服务器来练习linux操作。除了使用wsl或者虚拟机之外,还有一个更便携的linux终端,那便是安卓上的Termux...

95556-ijn6vp91y9f.png


软件介绍

Termux这个软件,可以说是安卓上的linux虚拟机,又不完全是个虚拟机。据官方文档介绍:

Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.”
“Termux 是一个Android 终端模拟器和 Linux 环境应用程序,无需 root 或设置即可直接运行。自动安装最小的基本系统 - 使用 APT 包管理器可以使用其他包。”

在安卓系统本身环境下,Termux得到了很好的运行优势,无需额外虚拟化操作即可使用linux操作界面。
在使用过程中,只需要像Debian系一样操作即可,你可以使用pkg安装软件包,也可以更换为apt软件包管理器等等。它可以运行很多Arm及Arm64的项目,比如nodejs、python、java等等。
Termux可以用来运行脚本、编译小型项目、学习linux系统操作而不会轻易影响主系统等。


准备工具

  • 一部安卓手机(性能、配置不限,储存大于4g,有root权限最好)
  • Google Play应用商店
  • 科学上网工具


开始安装

下载termux

首先启用科学上网环境,打开Google Play应用商店搜索Termux(该版本较低,可以去F-Droid或者gothub下载),下载安装,安装后打开(期间保持科学网络环境)
也可以去github下载:https://github.com/termux/termux-app/actions/
找到最新构建的版本,选择对应版本下载

打开后会加载几秒钟,随后会进入初始界面(如下图),此时可以关闭科学上网环境

28934-bjwrxl8f6c5.png

使用前非常重要的一步:给Termux换源,并更新软件包。步骤如下:

  • 在较新版本中,官方提供了图形化界面换源方式,可以快速更换,缺点是源站固定无法修改,日常足够使用
    图形化换源界面如图所示

19495-ig76bq3uk6c.png

在Termux中输入指令 termux-change-repo 并回车,将会进入需要更换的。库列表
一般换源只需要更换主仓库(Main repository)即可,空格可以选择取消选择要更换的仓库,默认主仓库是被选择状态
选择后直接回车,进入选择镜像源列表。使用“↓”移动并用空格选择到BFSU源,然后回车即可更换并触发update。这个是国内的北京外国语大学开源软件镜像站,在软件更新、安装时速度会快上不少。
在运行update时可能会报错,因为部分软件包可能未收录原因,但也可以正常使用。如果有特殊需要或者强迫症等,可以参考下面的手动换源到其他源。

  • 也可以手动修改文件来替换源站
推荐清华源(复制执行):
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

清华源手动修改文件:
执行 apt edit-sources
将文件内第二行deb及后面文件删除
粘贴 deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main

中科大源:
sed -i 's@packages.termux.org@mirrors.ustc.edu.cn/termux@' $PREFIX/etc/apt/sources.list

手动更换源后可以输入 pkg up 或者 apt update && apt upgrade来更新软件包,有时候会提示是否安装更新(y/n),推荐选择默认选项,如下图默认选项为N,如果有需要的话可以自行决定。更新过程较长且耗费较多流量,建议wifi下更新

85912-m8ovvan2jun.png


常用软件安装

到了这一步,Termux本身已经配置完成了,你可以在termux上练习使用linux操作,也可以在上面安装相关环境来部署一些小项目。

如果手机有root,可以执行sudo权限,需要先安装sudo包:pkg install tsu

脚本编程环境软件包:nodejs、python,推荐使用独立配置环境方法,当然如果没有特殊需求也可以直接使用apt install python或者apt install node,执行后输入y即可安装。经测试,从apt安装的版本中,nodejs版本为14.15.4;python版本为3.9.7

也可以在终端里面安装java环境,可以参考我之前博客写的树莓派安装java教程,同为arm架构,安装过程大同小异。

如果喜欢折腾,甚至可以在termux安装xfce4桌面,然后通过配置vnc来远程连接termux的可视化桌面

当然,也可以在termux配置静态博客hexo,一方面可以当做本地服务器,浏览器访问127.0.0.1即可访问自己的网站;另一方面,也可以在本地折腾好后打包到服务器。

termux可以直接ssh连接到安装linux系统的服务器。连接方式:ssh root@10.111.111.111 其中,root@表示使用root用户连接到服务器。


优化termux使用

termux我个人认为并非是独立的虚拟机,还是基于安卓系统操作。因此如果需要termux与系统进行文件交互,并非是难事,创建个软连接即可。(有root权限的用户还可以直接去根目录找termux内系统的/目录)

首先开启termux访问手机存储的权限termux-setup-storage,然后手机会弹窗是否授权termux访问储存权限,点击确认
软链接相对于文件夹的快捷方式,创建在termux的home目录,便于访问,同时也可以用文件管理器去修改文件夹内容。先用文件管理器在储存主目录创建文件夹为share(可自行修改),然后打开终端,输入ln -s /storage/emulated/0/share share即可在home目录创建share文件夹,指向主目录的share文件夹。
同时,授权了储存访问权限后会在home目录生成 storage 文件夹,可以通过这个文件夹访问到几个基本文件夹,如download等

67603-mnxknrrv8vb.png

在termux启动时会显示welcome to Termux! 欢迎信息,可以手动编辑nano $PREFIX/etc/motd来修改启动信息

可以使用Termux-ohmyzsh来美化终端,安装sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)" 由于github访问速度不定,可能下载较慢
第一次打开脚本时会列出可调整的颜色、字体,可以随意选择一个,后续要更改颜色与字体,可以输入~/.termux/colors.sh修改颜色或者~/.termux/fonts.sh修改字体
41862-a7wn858fanv.png

其他美化脚本推荐:bash <(curl -L gitee.com/mo2/linux/raw/2/2)


示例演示 - 部署本地hexo静态博客

hexo静态博客特点是无需数据库,只需要在本地使用markdown编写文章后使用hexo框架配合精美的模板即可生成美观的博客页面,适合部署到github等代码托管站。如果有需要,我后续将会出个专门博客的教程。例如下图中,我同学搭建的个人博客站
16589-a51ql1u8737.png

30612-d45qidov5kl.png

工具:nodejs软件包、hexo本体、git软件包

安装:

apt install nodejs
apt install git
npm install hexo-cli -g
npm install hexo-deployer-git --save
apt install openssh

接下来初始化hexo:

hexo init blog
cd blog
hexo g
hexo s

当输入完hexo s后,显示如下图,即可证明hexo框架启动成功,此时可以去打开手机浏览器,输入localhost:4000即可访问自己搭建的第一个网站——hexo博客初始页(如果发现后台很多报错,一方面可能是缺失模块,另一方面可能因为arm架构的设备不能完美支持,只能在本地搭建提供测试等)
90520-hhfibhbnu8e.png

38910-shzn2vh8ne.png

如果需要关闭博客,键入Ctrl+c即可停止


示例演示 - 安装VNC远程控制

vnc用于linux的远程桌面控制比较多。这里简单讲述一下如何对termux进行vnc控制

工具:x11-repo、tigervnc、xfce桌面

安装:

apt install x11-repo
apt install tigervnc
apt install xfce
vncserver

输入完vncserver后会提示设置密码,然后确认密码,接着会提问是否要设置只读的密码(其他功能用),一般选择N即可

引入vnc全局变量:export DISPLAY=":1"
先退出vnc进程:vncserver -kill :1
修改配置文件nano .vnc/xstartup在最后一行加入startxfce4,添加后先ctrl+o保存,在回车确认,在ctrl+x退出编辑

启动vnc指令:vncserver
结束vnc指令:vncserver -kill :1

手机下载一个VNCviewer,添加新连接,ip为localhost:5901,名字随意,点击连接即可(如果报警告可以直接无视,继续连接即可)
连接过程会提示输入密码,密码为刚刚设置的vnc密码,连接成功后如下图
52380-zsnwm92wy3k.png

如果想要每次启动终端自动启动vnc的话,可以输入nano ~/.bashrc,在最后一行添加vncserver即可

vnc可能会中文显示异常等等,需要手动下载字体之类的,本文不再拓展太多


示例演示 - 安装宝塔面板模拟建站(仅root的手机)

宝塔面板,这个让网站运营人员耳熟能详的网站管理面板,功能强大,操作简单易管理,还可以一键部署环境,很多人都使用这个管理网站...在termux中安装宝塔面板,性能较低,仅供参考与学习,不适用于正式生存环境
21252-k61ibrth4qr.png

工具:wget软件包,tsu指令软件包,宝塔安装脚本,浏览器,较长时间

执行指令
apt install wget
apt install tsu
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
如果手机已经root并授权,将会一路执行;如果没有root或者未授权,会显示“are you rooted?”
安装过程较长,由于我手机没有root,所以分享一下在树莓派安装的经验:
执行第三个长指令后,会快速加载安装环境,需要手动输入y才能继续安装。之后要等待很久,安装完会在最后几行显示http://127.0.0.1:8888/xxxx ,其中xxx显示宝塔面板的安全入口,需要把整条网站复制到浏览器才能进入面板;同时会在网址下方显示默认用户名和密码,可以用这个登陆到管理面板
宝塔面板会保持每次打开终端自启动,如果需要更改入口限制开关、账号密码等,可以输入sudo bt(每次只能更改一个东西,再修改需要重新输入指令),然后如下图所示:
60151-mdj9s4u0awf.png

一般我个人喜好输入11关闭入口限制,输入8更改默认端口,输入5更改密码,输入6更改用户名,其他保持默认

第一次登陆宝塔网页,会提示要安装环境。推荐使用LNMP环境(L:linux;N:Nginx;M:mysql/MariaDB;P:PHP),也是大部分网站框架常用环境。如果是在正常服务器安装,推荐使用编译安装,但如果在termux内,使用快速安装即可,编译安装会占用大量系统性能、资源,而且termux安装的宝塔并不适合投入正常使用环境中。至于安装版本,一切默认即可,反正后面也可以手动更换版本,而且termux也用不到太多。

Termux安装Ubuntu

在安卓终端里面体验一把真正的Ubuntu系统!(sudo仍需要root权限)

工具:proot-distro软件包(管理子系统)

安装:

apt update
apt install proot-distro 

安装完后输入proot-distro list可以查看这个软件包支持安装的系统列表
67375-6cyd4z3wk2g.png

这里我们安装Ubuntu系统,可以自行选择更改系统,指令如下:
proot-distro install ubuntu
等显示出Now run xxxxxxx时便为安装成功,安装时间很短,因为都是同一个内核,无需重新下载完整版Ubuntu(也可以多次下载不同的系统,每次下载或者启动只需要输入列表中系统名称即可)

启动Ubuntu时,只需要输入proot-distro login ubuntu即可启动(如果下载多系统,也可以把Ubuntu替换成其他名字来启动)
在Ubuntu内输入exit即可退回默认操作系统

每次启动系统都需要很长一段指令,因此这里提供一种简化指令方法:
在home目录指令nano ubuntu.sh,然后在里面输入proot-distro login ubuntu,接着ctrl+o保存,ctrl+x退出编辑,再修改文件读写权限chmod -R 777 ./ubuntu.sh,之后就可以通过执行脚本./ubuntu.sh快速进入了!

本文到此结束,感谢支持!

部分插图内容来自我同学的个人博客:https://jmzdd-jjly.website/ 欢迎大家前往访问!

]]>
0 https://yanhy.top/index.php/archives/98/#comments https://yanhy.top/index.php/feed/search/java/
用云服务器搭建自己的Frp服务 https://yanhy.top/index.php/archives/21/ https://yanhy.top/index.php/archives/21/ Sat, 03 Apr 2021 23:43:00 +0800 yanhy2000

Frp(Fast Reverse Proxy)是一个用于内网穿透反向代理应用,支持TCP、UDP等多种协议,可以将内网服务通过具有公网IP节点的服务器连接到公网,实际应用于本地服务器、树莓派建站等项目
77548-p3tu90g232.png

前言

前几期我们对树莓派进行了简单配置,但是仍没有将其投入到实际应用中。树莓派4b版性能强大,且运行功率较小,已经可以将其当成一个小型服务器使用了。因此本期内容就是为树莓派搭建个私人的Frp内网穿透服务器,以便于在树莓派上完成建站等项目。本次我们采用了64位系统的raspbian,在社区测试中,64位系统虽然功能尚未完善,但是其性能已经超出了官方原版32位系统很多,正合适用来配置小型服务器。


服务器选购

搭建Frp服务器时,一般使用各个大厂的学生机即可,推荐购买轻量应用服务器,1核2GB内存5M带宽的性能足够网站应用使用了,一般各个大厂的学生机每个月都是9块左右。虽然每个月限制1000GB流量,但是一般小型服务器除了音视频推流之外一般也用不完的。

阿里云学生机:https://developer.aliyun.com/plan/grow-up
腾讯云学生机:https://cloud.tencent.com/act/campus?from=12631
华为云学生机:https://developer.huaweicloud.com/campus?productType=KC1_1&timeType=1&domainItemData=
百度云学生机:https://cloud.baidu.com/campaign/campus-2018/index.html?unifrom=eventpage

注:阿里云的学生机取消入口,只能通过各种活动或者类似于开发者成长计划获取“学生机”;
华为云学生机为鲲鹏云,使用arm架构CPU,开发环境不同,请斟酌选择;
百度云学生机带宽较低,看个人选择;
其他厂商可能也有类似活动,本章暂未列出
购买服务器后安装系统等操作可以直接参考服务商文档,本章不再列出


安装&配置Frp

Frp的官方github开源页,里面可以下载到最新版本:https://github.com/fatedier/frp

Linux服务器配置Frp

1、通过ssh连接到服务器
2、先点击上面的链接前往github页面,找到右侧的Release,点击最新的版本,会看到很多个Frp版本
28538-depjpszrxdl.png

3、确认自己的服务器架构后(一般都是64位x86架构),在合适的版本上右击复制下载链接,一般情况下选择frp_xx.xx.xx_linux_amd64.tar.gz即可

4、在ssh输入 wget 复制的链接并回车即可开始下载,如:
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

5、下载完后解压tar -zxvf frp_0.36.2_linux_amd64.tar.gz(后面为下载的文件名,如不同请自行替换)

6、简化文件夹名称mv frp_0.36.2_linux_amd64 frp重命名为frp文件夹,并进入文件夹cd frp

7、编辑Frp服务端的配置文件nano frps.ini(frps为服务端,frpc为客户端),如无特殊需要保持默认配置即可,修改完点击键盘上Ctrl+o保存,再点Ctrl+x退出
47178-ulfoi0kbko.png

8、现在服务端的搭建临近尾声,输入sudo ./frps -c ./frps.ini即可运行,按下Ctrl+c停止运行
88992-d7wiuayzico.png

9、在服务器上使用守护进程systemctl:
在/lib/systemd/system文件夹下创建frps.service
29393-mf48abmi0z.png
Sudo vim frps.service
输入如下内容并保存退出

[Unit]
Description=frp service
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=#frp完整路径#/frps -c #frp完整路径#/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

示例:76097-39y69ni9vf6.png

10、启动Frp服务:systemctl start frps,输入systemctl即可查看进程frps正在运行;
设置frps开机启动:systemctl enable frps
31816-vuapf5e7ba.png


windows系统配置frps

在win可视化界面,操作会变得非常简便

1、在服务器内打开浏览器前往https://github.com/fatedier/frp下载最新版本,选择amd64版本下载
42893-ng6obzr12t.png

2、解压后双击打开frps.ini配置文件,修改端口并保存
61714-b0duifi2jzj.png

3、在文件夹地址栏输入cmd并回车,输入frps -c frps.ini即可运行frp服务器
76643-pt9lxjcktrg.png

4、要想设置frps服务器开机启动,只需要在地址栏输入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp并进入,新建frps.bat并右键进入修改

5、修改bat文件,将以下内容复制进去:路径\frps.exe -c 路径\frps.ini即可实现开机启动,如:
96799-7dgbsd8wdsb.png

服务器端口配置

在配置完frps后,仍需要去服务端网页后台的安全组处开放相应端口,如默认端口为7000,安全组需要添加tcp协议的7000端口;同时还需要再添加一个tcp协议的端口,作为映射出来的端口
62685-hccu3kmwnpu.png


Frp客户端配置

Linux系统客户端(树莓派为例)

按照前面服务端的方法下载frp到树莓派上并解压,这次将会用到压缩包内的frpc...
由于树莓派是arm架构,且本文使用的是树莓派的64位架构系统,因此在github我们下载frp_x.x.x_linux_arm64.tar.gz,下载、解压方法同服务端

84099-gvo7ftrhe8e.png

1、先进入frp文件夹内cd frp
2、配置frpc.ini的相关信息nano frpc.ini

[common]
server_addr = 服务器的公网地址,比如1.1.1.1
server_port = 服务器frp的端口

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22 #22端口在linux里是ssh连接用的,设置为22端口可以通过frp进行远程ssh连接树莓派
remote_port = 6000 #要映射的端口,比如在ssh软件内输入连接 1.1.1.1:6000 即可连接到ssh的22端口

3、保存并退出,输入./frpc -c ./frpc.ini即可连接到frp服务器

服务端:84453-3xpdpv7ha3a.png

客户端:20223-c5ur739npxa.png

如果连接超时,请检查:
服务器网页端控制台有没有放行端口、是否服务器有防火墙或者宝塔等面板二次阻拦、配置文件是否一致、服务器时间是否正确

win系统客户端

下载同上,然后解压后修改frpc.ini配置文件并保存

文件夹地址栏输入cmd回车,打开cmd后输入frpc.exe -c frpc.ini即可


Frp实际应用

Frp到此已经搭建完成了,之后我们就可以挂上frp做一些小项目了...

1、安装宝塔面板建站(64位系统):wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
2、NAS个人网盘:https://shumeipai.nxez.com/2018/11/01/a-raspberry-pi-nas-that-really-look-like-a-nas.html
3、MC游戏服务器(性能较低,联机用,仅java版):https://shumeipai.nxez.com/2013/11/21/how-to-run-low-cost-minecraft-on-a-raspberry-pi-for-block-building-on-the-cheap.html
4、安装远程桌面云办公:https://shumeipai.nxez.com/2013/10/06/windows-remote-desktop-connection-raspberry-pi.html
5、... ...


本篇文章到此结束,需要更多内容请持续关注本博客!

]]>
0 https://yanhy.top/index.php/archives/21/#comments https://yanhy.top/index.php/feed/search/java/