0%

软件介绍

一款用于代码、标记和散文的精致文本编辑器。

软件下载

官方网站:https://www.sublimetext.com/

序列号

-—- BEGIN LICENSE —–
Member J2TeaM
Single User License
EA7E-1011316
D7DA350E 1B8B0760 972F8B60 F3E64036
B9B4E234 F356F38F 0AD1E3B7 0E9C5FAD
FA0A2ABE 25F65BD8 D51458E5 3923CE80
87428428 79079A01 AA69F319 A1AF29A4
A684C2DC 0B1583D4 19CBD290 217618CD
5653E0A0 BACE3948 BB2EE45E 422D2C87
DD9AF44B 99C49590 D2DBDEE1 75860FD2
8C8BB2AD B2ECE5A4 EFC08AF2 25A9B864
—— END LICENSE ——

HOSTS文件

注册成功后,请修改一下HOSTS文件,永久授权。

127.0.0.1 sublimetext.com
127.0.0.1 www.sublimetext.com
127.0.0.1 sublimehq.com
127.0.0.1 telemetry.sublimehq.com
127.0.0.1 license.sublimehq.com

小编截图

sub.png

我们很多网友朋友选择Linux服务器并不是单单用来建站的,比如有些外贸或者外汇业务需要,会使用到桌面环境的服务器系统。但是我们应该知道海外服务器商家较多是Linux系统,Windows系统很少而且成本较高。这不我们在需要桌面环境的Linux系统我们可以直接安装VNC或者是RDP这样的桌面环境。

老左笔记在之前的文章中也有过不少安装包,目前也不清楚这些教程是否有效,以后有时间一一重新整理一遍。今天老左要分享的是来自香菇肥牛分享的一键Linux桌面安装脚本环境,支持可以快速安装RDP或者VNC桌面环境,支持我们常用的火狐浏览器,且当然可以选择中文和英文版本。在这篇文章中,老左花费点时间在Linux服务器Debian 10(也支持其他)版本中完测可用的,这里根据习惯记录下来。如果也有同样需要的网友站长可以参考。

第一、脚本支持系统及脚本安装

根据官方介绍是支持Ubuntu 18.04/20.04 LTS, Debian 10, 以及CentOS 7/8 64位操作系统上运行。在这篇文章中老左选择的是Debian 10 64位。

1、中文

wget https://raw.githubusercontent.com/Har-Kuun/OneClickDesktop/master/OneClickDesktop\_zh-CN.sh && sudo bash OneClickDesktop_zh-CN.sh

2、英文

wget https://raw.githubusercontent.com/Har-Kuun/OneClickDesktop/master/OneClickDesktop.sh && sudo bash OneClickDesktop.sh

这里有中文和英文版本,这个需要根据我们实际项目需要。有些必须在英文环境下,那就不能用中文,这个我们有需要的朋友知道的。这里我选择的是中文版本安装。

第二、一键Linux桌面安装过程

这里老左记录下来我完测Linux桌面的安装过程。

根据提示向导,设置登录面板的密码账户,以及分辨率。

因为会采用浏览器登录桌面方式,所以我们需要先解析一个域名(这里我用二级域名),解析到服务器IP,然后会配置SSL,自动的。

在安装过程中可能需要我们确认,我们一般回车即可。有需要安装的我们选择YES回车。

语言默认英文键盘。

这个安装过程实际上还是比较长的,我选择的是RDP,过程就是等待,看到上图才是正常的。我们可以去登录看看,会不会有错误呢?

第三、桌面环境登录验证

根据提示,我们需要用自己绑定的域名打开浏览器。

这个用户名和密码是我们自己设置的。

这个用户名和密码是我们服务器的root账户。

还算很顺利的登录进来,是我们熟悉的Linux桌面环境而且我们可以看到是有安装默认的火狐浏览器。

这样我们可以很正常的登录浏览器或者是我们可以有需要在Linux系统调试软件的可以使用。这个比通过远程连接登录服务器方便很多,直接浏览器打开登录,比较便捷,可以随时的登录,无需软件。

我们在选择海外服务器的时候是不是在安装软件比较慢?主要是海外服务器的镜像源都引用的海外节点的。这里我们一般会将服务器登录之后就更换国内的镜像源,这样安装软件的时候速度会比较快。老左在网站中也有分享过一些类似的文章,比如更换163、阿里云的源,包含Debian、Centos等。这样更换稍微有点笨拙。

在这里,老左看到有LinuxMirrors一键脚本可以用来更换Linux系统的源,直接运行脚本即可。包含我们常见的Debian、CentOS、Ubuntu等镜像。

第一、脚本命令

1
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)

Select Code

Copy

这里我们执行命令即可。

第二、安装进程

我们看看安装的过程。

这里我们可以根据需要选择源地址。比如选择1,为阿里云。

根据向导替换源后执行更新。最后如果没有报错,那就完全没有问题。

这样,是不是比较简单的就可以将服务器的Linux镜像源更新到我们的国内源,安装软件的速度和效率提高不少。

一键检测VPS回程国内三网路由,建议root用户。

用法:

curl https://raw.githubusercontent.com/zhucaidan/mtr\_trace/main/mtr\_trace.shbash

或者

curl https://zhujiwiki.com/wp-content/uploads/2022/01/mtr\_trace.shbash

支持的线路为:电信CN2 GT,电信CN2 GIA,联通169,电信163,联通9929,联通4837,移动CMI

网页截图

1
2
3
sudo apt-get install libqt4-webkit libqt4-dev g++ sudo 
apt-get install xvfb sudo
apt-get install cutycapt

安装中文字体:

复制windows下的字体文件到/usr/share/fonts/目录下

执行fc-cache刷新字体缓存

使用方法:

1
2
xvfb-run cutycapt --url=http://malu.me --out=malu.png

注:

个人用户字体文件在~/.local/share/fonts

系统字体文件在/usr/share/fonts

字体配置文件在/etc/fonts/

更多命令行截图参考:

Ghost.py网页截图: http://git.malu.me/Ghost.py%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B/

显示桌面截图

需要安装fbcat

1
apt-get install fbcat

使用脚本:

1
2
3
4
5
#!/bin/bash
NAME=`date "+%Y%m%d_%H_%M_%S"`
PNG_PATH="/tmp/fbcat_"$NAME".png"
fbgrab $PNG_PATH > /dev/null 2>&1
sz $PNG_PATH

摄像头截图

借助命令streamer:

1
apt-get install streamer

使用脚本:

1
2
3
4
5
#!/bin/bash
NAME=`date "+%Y%m%d_%H_%M_%S"`
streamer -c /dev/video0 -t 3 -r 0.1 -q -b 16 -o /root/camera/jp_$NAME-00.jpeg > /dev/null 2>&1
sz /root/camera/jp_$NAME-02.jpeg
#killall streamer

其中:

-t 抓取3张图

-r 0.1帧率

以上参数为了给摄像头启动时间(部分摄像头会休眠)

shadowsocks:

1
2
3
apt-get update
apt-get install -y python-pip python-m2crypto
pip install shadowsocks

Debian / Ubuntu:

1
2
apt-get install python-pip
pip install shadowsocks

CentOS:

1
2
yum install python-setuptools && easy_install pip
pip install shadowsocks

启动:

1
ssserver -p 3000 -k password -m aes-128-cfb -d start

停止:

1
ssserver -d stop

二级COW架设源码:https://github.com/cyfdecyf/cow

安装过程:

1
curl -L git.io/cow  bash

配置文件路径:

1
vim ~/.cow/rc

手工安装:

http://dl.chenyufei.info/cow/0.9.6/cow-linux64-0.9.6.gz

配置文件:

https://raw.github.com/cyfdecyf/cow/0.9.6/doc/sample-config/rc /root/.cow/rc

二级proxy部署 第二篇

上面写的是shadowsocks+cow实现二级proxy,接下来用一种简单的方式来实现二级proxy:

首先,一级proxy开启ssh服务。

二级proxy上用SSH端口转发:

1
ssh -N -f -D 0.0.0.0:8888 username@ssh.malu.me

输入密码,这段命令意思是连接远程主机ssh.malu.me,然后在本地0.0.0.0地址、端口8888上开启socket5监听。

这样只要访问二级proxy上的socket5代理就能穿过两层代理了。

二级proxy部署 自动脚本

相关参数根据实际修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/expect -f
set timeout 30
set host ssh.malu.me
set name root
set passwd userpasswd
set port 22
set lisenport 8888
spawn sudo /etc/init.d/ssh start
expect "*#"
spawn killall ssh
expect "*#"
spawn ssh -NfR 1234:localhost:2222 $host -l $name -p $port
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { sleep 1;send "$passwd\r" }
}
expect "*#"
spawn ssh $host -l $name -p $port
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { sleep 1;send "$passwd\r" }
}
expect "]$"
sleep 1
send "ssh -N -f -D 0.0.0.0:$lisenport root@localhost -p1234\r"
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { sleep 1;send "$passwd\r" }
}
expect "]$"
sleep 1
send "exit\r"
expect eof
exit

二级proxy部署 - 直连windows

windows下安装openssh

下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases

1.解压OpenSSH-Win64.zip到C:\Program Files\OpenSSH目录下,在DOS窗口进入OpenSSH目录

2.安装SSH host keys

1
.\ssh-keygen.exe -A

3.打开防火墙22端口

4.安装SSHD服务并在服务窗口找到名为“SSHD”的服务,右键将其启动,并设置为随操作系统自动启动

1
.\sshd.exe install

也可以直接启动:

1
.\sshd.exe

5.查看启动端口,如果需要监听外网,可以修改当前目录sshd_config文件

1
netstat -ant

sshd_config:

1
ListenAddress 0.0.0.0

内网穿透

根据二级proxy的原理,实质上是在两台服务器之间实现端口转发。

那么对应内网的服务器,只要能访问外网,那么利用SSH隧道端口映射就能实现内网穿透。

首先需要一台能远程登录的外网服务器。

然后内网服务器上执行:

1
ssh -gCNfR 80:localhost:8080 ssh.malu.me -l root -p 22

g:在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

(-g参数如果不生效,其实这是ssh默认的安全策略所致,需要在服务端/etc/ssh/sshd_config 添加 gatewayports yes 重启sshd即可)

C:压缩数据传输。

N:不执行脚本或命令,通常与-f连用。

f:后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-R 本地端口:目标IP:目标端口

将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-L 本地端口:目标IP:目标端口

将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D IP:port

指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

serveo

官网:https://serveo.net

eg:

1
ssh -R testname:80:localhost:80 serveo.net -o ServerAliveInterval=60

文档:https://www.jianshu.com/p/d0b3991a9ce1

zerotier

官网:https://www.zerotier.com

文档:https://www.zerotier.com/manual

国内服务:https://www.kancloud.cn/baoji\_enku/tx\_ip\_01/936021

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动
zerotier-one -d

# 获取地址和服务状态
zerotier-cli status

# 加入、离开、列出网络
zerotier-cli join <Network ID>
zerotier-cli leave <Network ID>
zerotier-cli listnetworks

# 重启
systemctl restart zerotier-one

报错:Cannot connect to Zerotier service

查看9993端口是否被占用

1
netstat -ab

二级proxy部署 - 轻量级SSH安装

下载地址:https://matt.ucc.asn.au/dropbear/

dropbear的编译安装:

1
2
3
# ./configure --prefix=/usr/local/dropbear --sysconfdir=/etc/dropbear --disable-pam 
# make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
# make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

加入环境变量:

1
export PATH=/usr/local/dropbear/bin:/usr/local/dropbear/sbin:$PATH

使用方法:

1
./n1.sh eth0

cat n1.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
eth=$1
RXpre=$(cat /proc/net/dev grep $eth tr : " " awk '{print $2}')
TXpre=$(cat /proc/net/dev grep $eth tr : " " awk '{print $10}')
sleep 1
RXnext=$(cat /proc/net/dev grep $eth tr : " " awk '{print $2}')
TXnext=$(cat /proc/net/dev grep $eth tr : " " awk '{print $10}')
#clear
echo -e "\t RX `date +%k:%M:%S` TX"
RX=$((${RXnext}-${RXpre}))
TX=$((${TXnext}-${TXpre}))

if [[ $RX -lt 1024 ]];then
RX="${RX}B/s"
elif [[ $RX -gt 1048576 ]];then
RX=$(echo $RX awk '{print $1/1048576 "MB/s"}')
else
RX=$(echo $RX awk '{print $1/1024 "KB/s"}')
fi

if [[ $TX -lt 1024 ]];then
TX="${TX}B/s"
elif [[ $TX -gt 1048576 ]];then
TX=$(echo $TX awk '{print $1/1048576 "MB/s"}')
else
TX=$(echo $TX awk '{print $1/1024 "KB/s"}')
fi

iftop

1、iftop界面相关说明

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。 中间的<= =>这两个左右箭头,表示的是流量的方向。

1
2
3
4
TX:发送流量 
RX:接收流量
TOTAL:总流量

2、iftop相关参数

1
2
3
4
5
6
7
8
9
10
11
-i设定监测的网卡,如:# iftop -i eth1 
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

3、进入iftop画面后的一些操作命令(注意大小写)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
按h切换是否显示帮助; 
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码
按!可以使用Shell命令
按q退出监控。

首先2台主机都要安装ssh服务端:

1
apt-get install openssh-server

如果有需要开启root远程登录,可以修改/etc/ssh/sshd_config

找到PermitRootLogin no一行,改为PermitRootLogin yes

A要控制B

A主机:外网,ip:123.123.123.123,sshd端口:2221

B主机:内网,sshd端口:2223

无论是外网主机A,还是内网主机B都需要跑ssh daemon

1.首先在B上执行

1
ssh -NfR 1234:localhost:2223 user1@123.123.123.123 -p2221

这句话的意思是将A主机的1234端口和B主机的2223端口绑定,相当于远程端口映射(Remote Port Forwarding)。

2.这时在A主机上sshd会listen本地1234端口

1
ssh localhost -p1234

自动登录

方法1.在内网B主机上生产公钥和私钥

1
$ ssh-keygen

…(一直按Enter,最后在~/.ssh/下生成密钥)

1
2
$ ls ~/.ssh/
id_rsa id_rsa.pub known_hosts

复制B主机上生成的id_rsa.pub公钥到外网A主机上,并将内容加入到~/.ssh/authorized_keys中

方法2.直接在B主机上执行

1
$ ssh-copy-id user1@123.123.123.123

SSH-keygen 根据私钥生成公钥

1
$ ssh-keygen -y -f id_rsa

用Autossh保持ssh反向隧道一直连接

1
autossh -NfR 1234:localhost:2223 user1@123.123.123.123 -p2221

注:默认autossh没有配置环境变量,需要自己设定

1
2
3
4
5
export AUTOSSH_PIDFILE=/var/run/autossh.pid
export AUTOSSH_POLL=60
export AUTOSSH_FIRST_POLL=30
export AUTOSSH_GATETIME=0
export AUTOSSH_DEBUG=1

为了保证开机时就启动,需要把以上环境变量写入/etc/profile中

然后在/etc/init/rc.local中添加:

1
autossh -NfR 1234:localhost:2223 user1@123.123.123.123 -p2221

使用curl让反向隧道保持连接

在A主机上配置计划任务:

1
*/1 * * * * netstat -lnt4pgrep "sshd: root"awk '{print $4}'awk -F ':' '{print $2}'xargs -i curl localhost:{}

定时向本地的隧道端口请求数据

其他技巧

默认只能通过ssh localhost -p来连接,如果要实现远程登录内网B主机,可以在A主机上再开一个本地端口转发:

1
ssh -g -L 80:localhost:1234 localhost

远程就可以通过A主机的80端口去连接B主机了。

我们甚至可以启动socket5隧道:

1
ssh -N -f -D 0.0.0.0:8888 root@localhost -p1234

ssh 指定私钥文件:

1
ssh -i /root/.ssh/idrsa root@malu.me -p 2111

ssh取消主机密钥检查

1.使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,如下:

1
ssh  -o StrictHostKeyChecking=no  192.168.xxx.xxx

2.一个彻底去掉这个提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:

1
2
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Vim乱码处理

/etc/vim/vimrc文件末尾添加

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

vim 去掉自动注释和自动回车

取消

1
:set paste

恢复

1
:set paste!

操作

vim删除

1
2
3
4
5
x        删除当前光标下的字符
dw 删除光标之后的单词剩余部分。
d$ 删除光标之后的该行剩余部分。
dd 删除当前行。

vim撤销、恢复

1
2
u   撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作

快速移动光标

1
w    移动到下一个单词

行编辑

1
Ctrl+v,hjkl,Shift+i

vim折叠

1
2
set foldmethod=syntax 或者是其它方法。设置好了之后可以用 zM 和 zR 来打开或关闭所有的折叠。

设置行号

1
:set number

设置相对行号

1
:set relativenumber

查找时忽略大小写

1
set ic

取消设置

1
:set no*****

每行最后添加字符

1
:%s/$/需要追加的字符

配置文件

编辑~/.vimrc文件

vim中文乱码

1
set encoding=utf-8

vim记录上次编辑的位置(编辑~/.vimrc文件)

1
2
3
4
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$")
\ exe "normal g'\""
\ endif

开启虚拟主机

1.编辑文件 F:\wamp\bin\apache\apache2.4.9\conf\httpd.conf

去掉httpd-vhosts.conf的注释

1
2
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

把Directory修改成如下

1
2
3
4
5
<Directory />
Order Deny,Allow
Deny from all
Allow from all
</Directory>

2.编辑文件 F:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
DocumentRoot D:/00_cloud/server-php
ServerName server-php.com
<Directory "D:/00_cloud/server-php">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

3.修改 C:\Windows\System32\drivers\etc\hosts

添加

1
127.0.0.1 server-php.com