搭建GohopVPN过程

1.安装相关所需软件包

注意,本VPN仅适用于Linux系统作为客户端的用户

apt updete && apt install golang-go gcc git make -y

2.设置相关环境变量

mkdir /root/gohop && export GOPATH=/root/gohop

3.下载gohop

go get github.com/bigeagle/gohop

4.开启ipv4网卡的TCP转发以及网卡的NAT功能

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE

5.写入server.ini配置内容

该文件可处于系统的任意位置,只需在启动时指定配置文件位置,在这里我们将配置文件放在gohop的项目文件夹的根目录下,配置文件照搬官方的文件内容

[default]
# server or client
mode = server

[server]
# port range to listen
hopstart = 40100
hopend = 40200
# server addr
addr = 10.1.1.1/24
# master key
mtu = 1400
key = ilovethebigbrother
# method of traffic morphing: none or randsize
morphmethod = none
# Fix MSS for tcp handshake
fixmss = true
peertimeout = 60
up = some.sh
down = some.sh

6.启动gohop服务

推荐使用screen将服务放置在后台持续运行,当然也可跳过该步骤在前台运行,但会造成推出SSH远程连接时,服务停止

screen使用教程_极简版(可跳过)
示例—创建一个名为gohop的screen与其使用方法
screen -S gohop

在screen中完成开启服务后可使用按住ctrl后按a不松开ctrl再按d即可挂起该screen
在挂起后如还想返回到该screen中可使用screen -ls查看其进程号,示例如下:

There is a screen on:
    3258.gohop  (11/14/2018 03:02:21 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

其中的3258便是进程号,使用screen -r 进程号(在这是3258)即可恢复
如想删除该screen可使用命令kill 进程号(在这是3258)杀死并删除该进程

启动VPN服务

如果你没有跳过上面的教程,那么,你在创建了screen之后便会发现屏幕内容被清空了。在这个新建的screen中,输入接下来的指令启动服务,如果你跳过了以上的教程,也可以直接输入以下的指令完成启动

/root/gohop/bin/gohop /root/gohop/server.ini

至此,服务端启动完成

接下来配置客户端

完成与服务端相同的前三步

apt update && apt install golang-go gcc git make -y && mkdir /root/gohop && export GOPATH=/root/gohop && go get github.com/bigeagle/gohop

在/root/gohop下写入如下配置文件client.ini

[default]
# server or client
mode = client

[client]
# gohop server
server = (服务端ip)
# port range for hopping
hopstart = 40100
hopend = 40200
mtu = 1400
key = ilovethebigbrother
# method of traffic morphing: none or randsize
morphmethod = none
# whether to redirect flow through gohop
redirect-gateway = true
# is server and client in the same subnet?
local = false
heartbeat-interval = 30
up = chnroute-up.sh
down = chnroute-down.sh

同样的,也可以使用screen在后台开启客户端,也可以直接前台使用

/root/gohop/bin/gohop /root/gohop/client.ini

至此,所有的客户端配置完成,你可以尝试打开浏览器看看能否打开Google等网站,也可以试着ping一下google等,但是注意DNS污染的问题,该VPN不会转发DNS查询,该VPN是通过Linux的tun功能假设流量通道并混淆防止GFW的探查与干扰,但在之后的测试中发现其丢包率真的十分高,但是可以考虑架设中转Linux服务器从而利用上该VPN方案的可能性,初步认为可在国内服务器上架设非常规的openvpn作为国内用户连接至国内中转服务器的方法,然后再经由中转服务器转发流量至境外服务器从而实现加密通道

openstack-nova

openstack–nova

一、在controller122节点上的操作

登录MySQL创建数据库,建立Nova用户并赋权。

mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

#nova_api权限

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
 IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
 IDENTIFIED BY '000000';

#nova权限

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
 IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
 IDENTIFIED BY '000000';

#nova_cell0权限

GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
 IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
 IDENTIFIED BY '000000';

4.命令. admin-openrc
5.#nova

openstack user create --domain default --password 000000 nova
openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://controller122:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://controller122:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

#plancement

openstack user create --domain default --password 000000 placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement
openstack endpoint create --region RegionOne placement public http://controller122:8780
openstack endpoint create --region RegionOne placement internal http://controller122:8780
openstack endpoint create --region RegionOne placement admin http://controller122:8780

6.安装Nova相关包

yum install openstack-nova-api openstack-nova-scheduler \
 openstack-nova-conductor openstack-nova-consoleauth \
 openstack-nova-novncproxy openstack-nova-placement-api \
 iptables

7.修改Nova服务的配置文件/etc/nova/nova.conf

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:[email protected]
my_ip = 192.168.1.122 #controller122的IP
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]
connection = mysql+pymysql://nova:[email protected]/nova_api

[database]
connection = mysql+pymysql://nova:[email protected]/nova

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://controller122:5000
auth_url = http://controller122:35357
memcached_servers = controller122:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 000000

[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

[glance]
api_servers = http://controller122:9292

[oslo_concurrency]
lock_path = /var/run/nova

[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller122:35357/v3
username = placement
password = 000000

8.添加信息到配置文件/etc/httpd/conf.d/00-nova-placement-api.conf

<Directory /usr/bin>
 <IfVersion >= 2.4>
 Require all granted
 </IfVersion>
 <IfVersion < 2.4>
 Order allow,deny
 Allow from all
 </IfVersion>
</Directory>

9.重启服务并验证

systemctl restart httpd
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
su -s /bin/sh -c "nova-manage db sync" nova
nova-manage cell_v2 list_cells

systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
二、在computer节点上的操作

1.下载Nova

yum install openstack-nova-compute

2.修改配置文件/etc/nova/nova.conf
快捷方式:传送controller122节点上的nova.conf文件
compute122节点上操作

1>scp [email protected]:/etc/nova/nova.conf /etc/nova/nova.conf
2>chown .nova /etc/nova/nova.conf

**注意:传送文件夹后openstack-nova-compute服务起不来有三种原因
1.查看防火墙是否关闭
2.主机名和域名一直,不要乱改域名
3.因为远程传送查看/etc/nova/nova.conf文件夹的权限
-rw-r—–. 1 root nova 990 May 9 19:18 nova.conf
所有者为:root 所属组:nova

openstack-glance

一、登录数据库建立glance数据库和glance用户并赋权

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';

KEYSTONE_DBPASS==000000

在这之前keystone最后两步创建admin-openrc、demo-openrc文件
vim admin-openrc

 export OS_PROJECT_DOMAIN_NAME=Default
 export OS_USER_DOMAIN_NAME=Default
 export OS_PROJECT_NAME=admin
 export OS_USERNAME=admin
 export OS_PASSWORD=000000
 export OS_AUTH_URL=http://controller122:5000/v3
 export OS_IDENTITY_API_VERSION=3
 export OS_IMAGE_API_VERSION=2

##controller == controller122
##ADMIN_PASS == 000000

vim demo-openrc

export OS_PROJECT_DOMAIN_NAME=Default
 export OS_USER_DOMAIN_NAME=Default
 export OS_PROJECT_NAME=demo
 export OS_USERNAME=demo
 export OS_PASSWORD=000000
 export OS_AUTH_URL=http://controller122:5000/v3
 export OS_IDENTITY_API_VERSION=3
 export OS_IMAGE_API_VERSION=2

##controller == controller122
##ADMIN_PASS == 000000

二、引入环境管理员环境变量

. admin-openrc

三、创建glance用户密码为000000

openstack user create –domain default –password 000000 glance

1.赋予glance用户admin角色加入service project

openstack role add --project service --user glance admin

2.创建名为glance的服务类型为image

openstack service create --name glance --description "OpenStack Image" image

3.创建image API接口

openstack endpoint create --region RegionOne image public http://controller122:9292
openstack endpoint create --region RegionOne image internal http://controller122:9292
openstack endpoint create --region RegionOne image admin http://controller122:9292

2.安装glance软件并配置相关文件

yum install openstack-glance -y

html-Font Awesome

Font Awesome:
一款为您提供可缩放的矢量图标,您可以使用CSS所提供的所有特性对它们进行更改,包括:大小、颜色、阴影或者其它任何支持的效果。

后期展示效果如下

一、html导入font awesome链接

1.在线导入

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">

2.本地导入
下载font awesome到网站的tempate/static目录下后在传入路径链接

<link href="/static/fontawesome/fontawesome-all.css" rel="stylesheet">

二、使用font awesome

1.在你需要的地方添加喜欢的icons

 <i class="fas fa-camera-retro"></i>

2.修改font awesome 的大小

<i class="fas fa-camera-retro fa-xs"></i>

文本内容来自

https://fontawesome.com 还有很多的icons

 

 

Emmet

Emmet:
是一款编辑器插件,支持多种编辑器支持。在前端开发中,Emmet 使用缩写语法快速编写 HTML、CSS 以及实现其他的功能,极大的提高前端开发效率。

使用方法:

一、进入.html后缀的文件

二、在文件中v选中,ctrl+y后出现tag:这个框,后在tag中输入emmet的缩写即可。

该方法方便快捷。

html-bootstrap

Bootstrap:
是最受欢迎的HTML、CSS、JS框架,用于开发响应式布局、移动设备优先的WEB目。

一、my-zsh中设置html文本的脚本
优点:每次编辑.html的文件,都会出现html的现成模板。

二、进入.vim、创建template文件夹、创建simple.html的html模板

1.cd .vim 
2.mkdir template
3.vim simple.html
在simple.html编辑如下信息

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
</head>
<body>
</body>

完成以上操作后,后期只要编辑.html后缀的脚本就能自动生成html格式的文件

 

openstack–etcd、keystone

etcd:OpenStack服务可以使用Etcd分布式可靠的分布式键值存储键锁定,存储配置,跟踪服务live-ness和其他场景。

一、安装etcd

yum install etcd

二、编辑配置文件

vim /etc/etcd/etcd.conf

#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://192.168.1.122:2380" ETCD_LISTEN_CLIENT_URLS="http://192.168.1.122:2379" ETCD_NAME="controller" #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.122:2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.122:2379" ETCD_INITIAL_CLUSTER="controller122=http://192.168.1.122:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"

三、启动etcd

systemctl enable etcd
systemctl start etcd

keystone:OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。

一、登录数据库

mysql -u root -p

二、创建keystone数据库

MariaDB [(none)]> create database keystone;

三、适当的访问keystone数据库

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

四、安装和配置组件

1.安装包

# yum install openstack-keystone httpd mod_wsgi

2.编辑/etc/keystone/keystone.conf

 [database]节中,配置数据库访问:

[database]# ...connection=mysql+pymysql://keystone:[email protected]/keystone

**取代 KEYSTONE_DBPASS与您选择的密码数据库。

 [token]节中,配置Fernet令牌供应商:

[token]# ...provider=fernet

3.填充身份服务数据库

# su -s /bin/sh -c "keystone-manage db_sync" keystone
  1. 初始化Fernet密钥存储库:

    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    
  2. 引导标识服务:

    # keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
      --bootstrap-admin-url http://controller:35357/v3/ \
      --bootstrap-internal-url http://controller:5000/v3/ \
      --bootstrap-public-url http://controller:5000/v3/ \
      --bootstrap-region-id RegionOne
    

    取代 ADMIN_PASS用一个合适的密码管理用户。

五、配置Apache HTTP服务器

  1. 编辑 /etc/httpd/conf/httpd.conf文件和配置 ServerName选择参考控制器节点:

    ServerName controller
    
  2. 创建一个链接 /usr/share/keystone/wsgi-keystone.conf文件:

    # ln -s /usr/share/keystone/wsgi-
    keystone.conf /etc/httpd/conf.d/
    

    六、完成安装

  1. 启动Apache HTTP服务和配置在系统启动时启动:

    # systemctl enable httpd.service
    # systemctl start httpd.service
    
  2. 配置管理账户

    创建admin.env,添加一下数据

    $exportOS_USERNAME=admin
    $exportOS_PASSWORD=ADMIN_PASS
    $exportOS_PROJECT_NAME=admin
    $exportOS_USER_DOMAIN_NAME=Default
    $exportOS_PROJECT_DOMAIN_NAME=Default
    $exportOS_AUTH_URL=http://controller:35357/v3
    $exportOS_IDENTITY_API_VERSION=3

 

html–bootstrap、emmet

Bootstrap:

是最受欢迎的HTML、CSS、JS框架,用于开发响应式布局、移动设备优先的WEB项目。

一、如何自动生成html模板脚本

1.cd .vim

2.mkdir template

3.vim simple.html

 

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title></title>
</head>

<body>
<script>
</script> 
</body>

后期只要编辑.html后缀的脚本就能自动生成html格式的文件

Emmet:

使用于编写HTML/XML和CSS代码的前端开发人员,可以设置CSS形式的能够动态被解析的表达式,根据你所输入的缩写来得到相应的内容。

使用方式:

vim test.html  #打开.html后缀的文件
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title></title>
</head>

<body>
<script>
Hhh

Xxx
</script>
</body>

V选中Hhh、Xxx按住ctrl + y +逗号(,)

需要什么样的格式在tag后面输入即可!

eg:

 

openstack包

一、安装并配置组件

安装数据库

#yum install mariadb mariadb-server python2-PyMySQL

创建并配置/etc/my.cnf.d/openstack.cnf

[mysql]

bind-adress = 192.168.1.122 
#IP为操作主机的IP
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

启动并设置自动启动

#systemctl enable maridb.server
#systemctl start mariadb.server
#mysql_secure_installation

运行该脚本,*注意:数据库的root用户密码设置一个适当的密码。

二、消息队列

#yum install rabbitmq-server
#systemctl enable rabbitmq-server.service
#systemctl start rabbitmq-server.service

添加openstack用户 RABBIT_PASS为密码,这里你可以改成自己想要的密码

#rabbitmqctl add_user openstack RABBIT_PASS

给openstack用户配置读和写的权限

#rabbitmqctl set_primission openstack ".*" ".*" ".*"

验证:

管理组件启动

#rabbitmq-pligins enable rabbitmq_management

#curl 127.0.0.1:15672

*注意:如何检验rabbitmq时有问题(即rabbitmq-pligins enable rabbitmq_management)出现报错。

1.检查 /etc/selinux/config配置文件是否有下面的内容

SELINUX=disabled

2.检查防火墙是否关闭

systemctl status firewall