1024社区 | 1024.day
12K subscribers
406 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
#haha
既然大家喜欢看姥爷吹牛逼,那么姥爷就吹吹美帝几大廉价机房吧,分别是 CC机房、MC机房、鲨鱼机房,没用过好机房,毕竟穷,汗!

首先是 CC 机房,全称是 ColoCrossing,这个机房几乎是廉价 VPS 的标配,比如 VirMach 和 RackNerd 都在用,这个机房线路表现比较好的是洛杉矶和圣何塞、欧洲三个地方。IP 基本被 Google 列入黑名单了,跳 Google 验证,最差机房,没有之一。

其次是MC机房,全称是 Multacom Corporation,这个机房一些 VPS 也比较常用,比如 CloudCone 和 RackNerd 家的 DC2 用的就是这个机房产品,线路速度和 CC 机房差不多,有些 IP 段自带防 D,比如 173.82.105.* ,推洛杉矶线路。唯一的好处的是 IP 不会跳 Google 验证。

最后是鲨鱼机房,全称是 Sharktech,这个机房号称 CN2,其实狗屁。线路和速度稍微比 MC 和 CC 好点,但有限,推洛杉矶线路。好处是全系 IP 防 D,建个网站挺好的,Google 不会跳验证。它家自己有 VPS 销售,RackNerd 家的防 D 线路用的也是它家的,还有就是贵。
有趣的Linux命令17:

今晚要讲的是shell前后台任务切换命令,这个命令在vps上比较实用,比如编译一些比较耗时的大型软件可以切到后台,避免多开终端。

当用bash启动一个程序,你可以在程序后加 & ,实现程序在后台运行。

例如: vi & vi这个程序就在后台运行了。

如果想调运行中的任务到前台运行的话,首先查看运行中的任务号,

jobs 命令查询,一般显示1、2、3等。

fg 1 即可调出后台运行的任务到前台,后面1即是任务号。

-------------华丽分割线------------

那么运行中的任务怎么切换到后台呢?按 Ctrl + z 暂停前台工作切换到后台,注意这时任务在后台是暂停状态。

jobs 查询任务号

bg 2 在后台挂起的任务会继续在后台运行了,和 vi & 效果一致。(bg后面的2还是任务号)

如果要把后台的任务切换到前台,还是一样 fg 2 即可。

1. command & 让进程在后台运行

2. jobs 查看后台运行的进程

3. fg n 让后台运行的进程n到前台来

4. bg n 让进程n继续在后台运行

PS: "n" 为jobs查看到的任务编号。
有趣的Linux命令18:
今晚要讲的是迟来的ssh命令,主要用于远程登陆服务器。下面的name指的是登陆用户,IP就是你服务器IP

1、查看SSH版本:
ssh -V

2、连接远程主机,其中的name可以是root或者其它,默认端口是22:
ssh name@IP

3、带端口连接远程主机:
ssh -p 10086 name@IP

4、通过远程主机1跳到主机2:
ssh -t IP1 ssh IP2

5、通过SSH执行远程shell命令:
ssh -l name IP command
比如远程查看服务器内存使用状况:
ssh -l root IP free

6、修改SSH监听端口:
vi /etc/ssh/sshd_config
找到 Port 22 这行,去掉前面#号,并修改成你需要的端口,然后重启ssh
/etc/init.d/ssh restart
有趣的Linux命令19:
今晚要讲的是 history 命令,这个命令可以读取历史命令记录。

history 会显示历史操作命令,前面会显示序列号,如下:

    1  ll
2 uname -a
3 mkdir /root/.ssh
4 ll
5 vi /root/.ssh/authorized_keys
6 apt install vim
7 vi /root/.ssh/authorized_keys
8 vi /etc/ssh/sshd_config
9 systemctl restart sshd


然后可以执行历史命令,比如第四个 ll 命令:
!4

要查看最近的10条历史命令:
history 10

清除命令历史记录:
history -c
最近RackNerd,hosthatch,GreencloudVPS分别发送邮件说明Debian10 漏洞,他们建议Debian10用户重装系统。

具体问题是SolusVM官方系统模板Debian10里的'debianuser'用户没删除,可能会导致安全问题。

解决建议:

检查 debianuser的登陆情况
cat /var/log/auth.log | grep 'debianuser'

如果没登陆过, 删掉这个用户
userdel debianuser
rm -r /home/debianuser

如果已经被登陆过, 马上备份数据并重装系统。

by:隐身的**
有趣的Linux命令20:
好久没更新了,今晚要讲的是 timedatectl 命令,此命令可以查询和更改系统时钟和设置。

1、显示系统的当前时间和日期
timedatectl status

2、查看所有可用的时区
timedatectl list-timezones

3、设置中国上海时区
timedatectl set-timezone "Asia/Shanghai"

4、设置UTC时间
timedatectl set-timezone UTC

5、设置日期和时间
timedatectl set-time '23:40:45 2021-03-11'
有趣的Linux命令21:

今晚讲讲NPM命令,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。

安装npm:
https://github.com/nodesource/distributions

npm常用命令:

npm version 查看详细版本

npm install hexo -g 安装hexo

npm install hexo 目录安装

npm uninstall hexo 卸载hexo

npm install hexo --registry=https://registry.npm.taobao.org 使用淘宝镜像安装

npm install folder ./hexo-next-share 本地文件安装插件

npm ls 查看安装的模块

npm cache clean -f 清理缓存

npm install -g npm-check 安装npm-check

npm-check 查看系统插件是否需要升级

npm install -g npm-upgrade 安装npm-upgrade

npm-upgrade 更新package.json

npm update -g 更新全局插件

npm update --save 更新目录插件
网际互联及OSI七层模型:

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

==========================================

物理层

作用:定义一些电器,机械,过程和规范,如集线器;

PDU(协议数据单元):bit/比特

设备:集线器HUB;

注意:没有寻址的概念;

==========================================

数据链路层

作用:定义如何格式化数据,支持错误检测;

典型协议:以太网,帧中继(古董级VPN)

PDU:frame(帧)设备:以太网交换机;

备注:交换机通过MAC地址转发数据,逻辑链路控制;

===========================================

网络层

作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包;

典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP;

PDU:packet/数据包;

设备:路由器

备注:实现寻址

============================================

传输层:

作用:提供可靠和尽力而为的传输;

典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF,

PDU:fragment 段;

无典型设备;

备注:负责网络传输和会话建立;

=============================================

会话层:

作用:控制会话,建立管理终止应用程序会话;

典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows,

备注:负责会话建立;

==============================================

表示层:

作用:格式化数据;

典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI,

备注:可以提供加密服务;

===============================================

应用层:

作用:控制应用程序;

典型协议:telnet, ssh, http, ftp, smtp, rip, BGP, (未完待续)

备注:为应用程序提供网络服务;

====
#vim
vim粘贴json文件技巧:
主要也就是关闭自动换行,然后再粘贴内容。如下:
1、命令行模式输入
:set paste
2、回车,按i键进入输入模式,最后粘贴
嗯,姥爷好水……
#xmr #btc
服务器挖 XMR (门罗币),独服或者部分 VPS 可以玩玩,一天大概能挖不到1块钱,有些 IDC 商家限制挖矿的,留意!

1、注册钱包

前往门罗币官方网站下载页面: https://web.getmonero.org/zh-cn/downloads/#gui

下载安装门罗币钱包后,按照提示创建账号,设置钱包密码。获取门罗币账号地址等信息,保存在安全的地方。

2、选择矿池

你可以到这里找到门罗币矿池: https://monero.org/services/mining-pools/

这里选择猫池: https://c3pool.com/cn/

3、开挖

打开猫池主页,上面填上门罗币钱包地址,然后选择下面的一键脚本,选择 Linux 脚本,复制。

服务器或者 VPS 上,运行脚本。

启动命令: systemctl start c3pool_miner.service
#xmr #btc
限制程序跑 CPU 的百分比,比如下面挖矿程序 xmrig 占用 70% CPU,注意 TG 上隐藏了分号,也就是 Tab 键上的那个 ~ 键,具体看图

• apt -y install epel-release && apt update && apt -y install htop cpulimit
• nohup cpulimit -l 70 --pid ps -ef | grep xmrig | grep -v grep | awk '{print $2}' &
#haha #linux
大家节日愉快,唠唠嗑!

姥爷关于 Linux 的教程,都是以 Ubuntu 18.04 Server 和 Debian 10 Server 为主,且都是 root 用户,不关注桌面,没有 sudo 等用户命令。

C 环境包:
apt install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev

golang 环境:
wget https://golang.org/dl/go1.16.3.linux-amd64.tar.gz -O - | tar -xz -C /usr/local/

vi ~/.profile

export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/.cargo/bin
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

source ~/.profile
go version

rust 安装:
curl https://sh.rustup.rs -sSf | sh

docker 安装:

curl https://get.docker.com -fsSL | sh
#proxy
个人认为switchyomega这个插件是比较简单好用的,各代理之间切换比较方便,比如Tor、ss、v2ray、xx-net之间切换,只要端口不同就ok了。而且规则添加,删除也较PAC简单。下面是别人家的教程推荐:
https://yearliny.com/switchyomega-tutorial/
有趣的Linux命令22:
好久没说命令了,今晚讲一下dd命令,dd命令用于读取、转换并输出数据。这个命令写入镜像是真的比Windows下方便多了。
下面就来演示一下写入Ubuntu镜像到U盘,然后你就可以拿着U盘去安装系统了。

1、下载镜像,以Ubuntu为例,当然Windows或者其它桌面iso文件都行:
wget -P /root https://releases.ubuntu.com/20.04.2/ubuntu-20.04.2-live-server-amd64.iso

2、插入U盘后,用 df -h 命令查看U盘分区路径信息。下面以U盘在 /dev/sdb 路径为例。

3、写入镜像到U盘:
sudo dd if=/root/ubuntu-20.04.2-live-server-amd64.iso of=/dev/sdb bs=1440k

上面各项参数解读如下:

if=/root/ubuntu-20.04.2-live-server-amd64.iso: 输入文件名,默认为标准输入。即指定源文件。
of=/dev/sdb: 输出文件名,默认为标准输出。即指定目的文件。
bs=bytes: 同时设置读入/输出的块大小为 bytes 个字节。

是不是很简单,一条命令就可以写入U盘安装镜像。
有趣的Linux命令23:
今晚要讲的是 echo 命令,echo为输出命令,在 sh 脚本中用的较多,本来想 echo 和 printf 两个命令一起讲的,考虑到篇幅太长,还是先讲 echo 命令吧。

1、显示普通字符串:

echo "It is a test"
上面双引号也可以省略,如下:
echo It is a test

2、显示转义字符

echo "\"It is a test\""
结果显示:
"It is a test"
同样双引号也可以省略

3、显示变量

这里用到 read 命令,这个命令下次再讲,read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
写个脚本先,下面代码保存为 test.sh,name将是一个变量:

#!/bin/sh
read name
echo "$name It is a test"

运行上面脚本 sh test.sh
将会要求你输入变量,此处输入 Hi,
那么将会显示:
Hi,It is a test

4、显示换行

echo -e "OK! \n"
echo "It is a test"

将会显示
OK!

It is a test


5、显示不换行

echo -e "OK! \c"
echo "It is a test"

将会显示:
OK! It is a test

6、显示结果覆盖整个文件

echo "It is a test" > myfile

7、显示结果追加到文件结尾

echo "It is a test" >> myfile

8、原样输出字符串,不进行转义或取变量

echo '$name\"'

将会显示:
$name\"

9、显示命令执行结果

echo date

上面 date 命令包含了两个反引号,TG 给忽略了,注意!date 命令将会显示时间日期:

Thu May 20 01:19:27 CST 2021
#ssh #linux
服务器上使用 ssh 密钥登录

1、本地客户端生成密钥对

使用下面命令生成密钥对:

ssh-keygen -t rsa -P

-P表示空密码,一路回车,在 .ssh 目录会生成下面三个文件

cd ~/.ssh && ls

id_rsa id_rsa.pub known_hosts
id_rsa: 表示私钥,不要泄露
id_rsa.pub: 表示公钥

查看公钥内容,然后复制下来:

cat ~/.ssh/id_rsa.pub

上面客户端完成,开始折腾服务端

2、服务端新建authorized_keys

root目录下新建 .ssh 文件夹

mkdir /root/.ssh

.ssh 文件夹新建 authorized_keys 文件

vi /root/.ssh/authorized_keys

上面添加客户端复制下来的 id_rsa.pub 内容,保存。

3、修改 sshd_config 内容

vi /etc/ssh/sshd_config

禁用密码登陆
PasswordAuthentication no

允许root用户登录
PermitRootLogin yes

指定公钥数据库文件
AuthorsizedKeysFile .ssh/authorized_keys

以启用密钥登陆
PubkeyAuthentication yes

最后重启 sshd 服务:
systemctl restart sshd
#linux #proxy
Linux 终端挂代理,下面分享两种方法:

1、ProxyChains 是一个终端代理方案,使用比较简单,直接安装:

apt install proxychains

编辑 /etc/proxychains.conf 文件,vi 翻至最下面,把默认的 tor 的代理方式、端口换成你的代理端口,比如常用的 Shawdowsocks 代理:

vi /etc/proxychains.conf

翻到最下面把 tor 端口改成:

socks5 127.0.0.1 1080

先启动代理,连接至服务器,然后,只需要在运行程序的命令前加上 proxychains 即可。比如:

proxychains curl www.google.com

2、把代理服务器地址写入 shell 配置文件 .bashrc

echo "export ALL_PROXY=socks5://127.0.0.1:1080" >> /root/.bashrc

然后: source /root/.bashrc

这种方法会导致所有请求都走代理了,没有第一种来得方便。
#gitalk
解决博客评论,使用 Gitalk 登录授权报 403 的问题:

近期发现使用 gitalk 在登录 github 授权时出现错误 error: request failed with status code 403

这是因为 gitalk 在访问 github 时为了解决跨域问题使用了一个反向代理,这个默认的反向代理近期限制了访问,所以无法使用了。

发现不少朋友使用更换代理地址的方式来解决问题,但将自己网站的服务依赖于第三方,也不是长久之计,为什么不搭建一个反向代理来自己使用呢?

可以使用 nginx 简单的配置一下,即可达到反向代理请求 github 的目的。

配置 nginx 在443端口下添加一个反代即可:

   location = /login/oauth/access_token {
proxy_pass https://github.com;
}

然后,只需要在 gitalk.js 中添加你的网址也就可以了,如下:

proxy: 'https://yeahwu.com/login/oauth/access_token'
#openssl #hash #passwd
openssl hash 加密,及判断 hash 的类型

$1$QzybI4X/$P/iFld6vSYKBoZd5.bn201

上面是一串加密了的密文,明文密码为: starts.sh

描述:开始的 $1$ 位为加密标志,后面8位$中间内容为加密使用的 salt,最后面的为 hash

长度:34个字符

加密算法:2000次循环调用MD5加密

试一下,还原上面的密文,命令:
openssl passwd -1 starts.sh

回显:
$1$cZCelkE6$qsiWcTgHN4O9aotAHQjG60

呀,和上面的密文不一样?原因是没有固定 salt 值,那么再试一下:
openssl passwd -1 -salt QzybI4X/ starts.sh

回显:
$1$QzybI4X/$P/iFld6vSYKBoZd5.bn201
这下就还原了上面的密文了。

$1$ 为 MD5 加密
$5$ 为 SHA-256 加密
$6$ 为 SHA-512 加密
……

另,爆破上面的密文,可以试试 hashcat