VPS建立SS链接,并实现多端口多用户

在Centos7X环境下建立Shadowsocks多用户链接

0.环境说明:

①Vlutr VPS 基础5刀版

②国内可用的IP地址

1.首先检查VPS的IP是否被封,也就是国内能否PING通:

可使用下面的检测链接或者直接用命令行ping IP

2.安装SS:

链接到SSH,并下载SSH一键包

wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

接下来修改密码端口和加密方式:

IP就是你VPS服务器的IP,密码和加密方式要和登陆时候对应

3.此时单用户的SS已经配置完成,若需配置多用户,可以修改/etc/shadowsocks.json文件

键入命令

vi /etc/shadowsocks.json

修改为:

{
"server": "0.0.0.0",
"port_password": {
"1234": "password1",
"5678": "password2",
"5556": "password3",
"22166": "123456abc"
},
"timeout": 300,
"method": "aes-256-cfb"
}
4.接下来重启服务就可以使用了:
ssserver -c /etc/shadowsocks.json -d stop
ssserver -c /etc/shadowsocks.json -d start
5.在windows端链接的界面如下:
6.各版本SS下载地址:

安卓: Shadowsocks-Android

IOS: Shadowsocks-iOS

Windows 7 及以前的版本 :shadowsocks-win-2.3.zip

Windows 8 及以后的版本:shadowsocks-win-dotnet4.0-2.3.zip

7.附性价比比较高的几款VPS:

①vultr vps 16数据中心 5¥/月 起,日本、新加坡机房同价,按时计费(但是很多IP被封,更换即可)

②Lindo 老牌 12数据中心 5¥/月 起,有日本、新加坡机房

③Bandwago IT7旗下,服务稳定,但是国内官网经常挂

【python你不知道的知识】python编译出so静态库

工程中可能会遇到需要python依赖的so库的情况,那现在就来说一下方法吧:

0.环境说明:

①python3.7.2

②centos 7.4

1.安装依赖包:

cd ***/Python-3.7.2 #***是你存放python的目录的位置
./configure --prefix=/usr/local/python3.7 --enable-shared
make
make install altinstall #使用旧版本安装(如果有)

 

 

 

【centos7.4/python3.7.2】修复pip3错误pip is configured with locations that require TLS/SSL

错误名称:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

实际上是python编译SSL的时候出错,下面来看下解决方法

 

0.环境说明:

①python3.7.2

②centos 7.4

 

1.安装依赖包:

 

2.打开ssl代码块儿 Python-3.7.2/Modules/Setup.dist 并让下面的配置可用

cd ***/Python-3.7.2  #***是你存放python的目录的位置

vi Modules/Setup.dist

3.接下来重新编译Python就不会报SSL错误了:

make clean
./configure --with-openssl=/usr/local/openssl --enable-optimizations
make
make install

 

笑 · 二十年

笑 ·  二十年

土坑里头打滚
瞭高山上怒号
长风之中奔跑
知否天几许高

注:生于黄土高原的我,早已习惯自由的在山间奔走。能接近天空的跑道也别有一番风味。

——————————脩于公元贰零壹玖年六月二日晨

 

【mysql技巧】linux安装mysql后重置密码 ,快速解决 ERROR 1045 (28000)

一般情况下linux下mysql安装完成后会自动生成一个密码,我们可以使用cat命令在/var/log/msqld.log下查看,但是,有一次却发现这个密码神奇的不可用,所以我们得想个办法来跳过验证了:

0.环境说明:

①mysql 5.7.25

②centos 7.4

③拥有root权限,忘记mysql root密码或者无法登陆的情况

1.跳过mysql密码验证:

whereis my

 

找到my目录后编辑my.cnf 在[mysqld]后面任意一行添加“skip-grant-tables”

vi /etc/my.cnf
skip-grant-tables 

2.重启mysql

service mysqld restart
mysql

现在mysql可以直接登录了

3.修改mysql密码:

UPDATE mysql.user SET authentication_string = PASSWORD('Root123A'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
flush privileges;
quit;

这样就将mysql root用户的默认密码修改成了Root123A

如果是5.7以前的用户可以尝试使用:

update msyql.user set password=password("Root123A") where user="root";
flush privileges;
quit;

4.然后编辑my.cnf 在[mysqld]去掉刚刚添加的“skip-grant-tables”,重启mysql

sevice mysqld restart

centos 7.4 VMWare 虚机固定IP设定

在使用VM安装LINUX虚拟机后,为了方便使用,常需要使用一些SSH工具登录,这里用固定IP就会方便很多:

0.环境说明:

①本机配置win10X64 8GBRAM

②VM 14.0.0

③虚机系统 CENTOS 7.4 X64

1.在编辑→虚拟网络编辑器中选中 Vmnat8 ,点击底部的更改设置(需要管理员权限),填写子网IP,点击DHCP配置,配置起始和结束IP地址:

2.在网络中心,选择更改适配器设置,找到vmnat8对应的适配器:

右键点击属性,双击internat协议4,按照VM的配置更改,并配置网关、和DNS服务:

3.下面在虚拟机内的操作:

①修改配置文件ifcfg

cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens33

②按照如下配置ifcfg文件:

BOOTPROTO=static      #开机协议,有dhcp及static;
ONBOOT=yes        #设置为开机启动;
DNS1 = 8.8.8.8
DNS2=114.114.114.114   
IPADDR=192.168.5.20    #你想要设置的固定IP,在第一部的起始地址和结束地址间选一个; 
NETMASK=255.255.255.0   #子网掩码,保持一
GATEWAY=192.168.5.16   #网关,与2配置的网关保持一致

③重启网络服务,并查看当前IP,你发现已经改成了所需的静态IP地址:

service network restart
ifconfig

这时我们就可以使用Xshell、SecureCRT等SSH工具轻松的访问虚拟机了

【mysql技巧】如何在存储过程(produce)中使用数组

在工作中难免会遇到需要使用一个数组的时候,但是mysql却没有数组这种类型,所以我们需要想个办法来处理它。下面是一个简单的演示:

CREATE procedure proc_update_use_arr(myID BIGINT(10))
BEGIN
	DECLARE arr VARCHAR(100);
        DECLARE arr_flag INT;
        DECLARE index_a INT;
	DECLARE num INT;

	SET arr  = '1,2,3,4,5'; 
	SET arr_flag = 1;
	SET index_a = 1 ;
	WHILE arr_flag <= 5 DO
		SET num = substring_index(substring_index(arr,',',index_a),',',-1);
		SET index_a = index_a + 1 ;
		SET arr_flag = arr_flag + 1;
		INSERT INTO b(id,num) VALUES(arr_flag,num);
	END WHILE;
    COMMIT;
END$$

上面的功能就是把一个数组arr中的五个数字分五条记录插入,其中我们使用一个长varchar类型 arr来保存数组,再使用分隔字符串的方法substring_index来分解字符串为数字。

天空洒雨会长风

天空洒雨会长风

微雨是露空迷眼
直指剑河莫知倦
未见长空多疑路
何须再会梦长风

注:早起雨淅沥,看着渐小的天色还是忍不住要出去跑一下,小雨打面,但是对于经常在风雨里的跑者又算得什么呢?花花绿绿的红绿灯就像魔都的霓虹,让我分不清方向,规划的路径早已没有用了。就让我沿着剑河路跑到底,不知道是否能离天空更近一点?忘记了跑的疲惫,雨水淋湿全身,湿了双眼,离目的地长风公园越来越远。拖着一身的湿衣服迷失了方向,我们下次再见。

——————————脩于公元二零一九年五月二十六日

【python你不知道的知识】如何实现python中的字符(注意不是字符串)

工程中遇到了C++读python字符的场景,但是因为python没有字符的概念,只有常量字符串,几乎试过了所有的方法,单个字符,或者是ascii码都不行。最后终于找到一种可行的方案,那就是使用python中的byte。

关于两者的异同,想要追根究底的同学可以看下这篇文章:https://www.cnblogs.com/chownjy/p/6625299.html

如果比较急,不想浪费时间,那么直接开看使用方法吧:

char = bytes('s',encoding='utf-8')

这样我们就实现了byte型的字符’s’,便可以将其当做C++等语言的char型进行字符的传递了。

【mysql技巧】mysql中查询一个字段属于什么表什么数据库

知道一个字段,却不知道它所在的表和数据库可用这个方法:

select table_schema,table_name from information_schema.columns where 
column_name = '字段名'