1
2
3
4
openssl genrsa -des3 -out server.key 2048
openssl rsa -in server.key -out server.key
openssl req -sha256 -new -key server.key -out server.csr -subj '/CN=localhost'
openssl x509 -req -sha256 -days 36500 -in server.csr -signkey server.key -out server.crt

https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ cat cert.pem
-----BEGIN CERTIFICATE-----
MIIDJDCCAgwCCQDIHbBXyn2dyDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJD
TjERMA8GA1UEBwwIc2hhbmdoYWkxEDAOBgNVBAoMB3F6c3RlY2gxHzAdBgNVBAMM
FmdpdGxhYi5pbmMucXpzdGVjaC5uZXQwIBcNMTcwODAxMDk1OTA0WhgPMjExNzA3
MDgwOTU5MDRaMFMxCzAJBgNVBAYTAkNOMREwDwYDVQQHDAhzaGFuZ2hhaTEQMA4G
A1UECgwHcXpzdGVjaDEfMB0GA1UEAwwWZ2l0bGFiLmluYy5xenN0ZWNoLm5ldDCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKaAZnlgevlhWR3djmFxZgcX
Pwy2PiWpgr4kXQGAbCMTS2ouiTYvSW6rr9ofRv39G7yxSc7Rah6N1f9y6y9/itR7
C2vMSM/GHMX8zvLt49PFNjhIYv1Nd38VBoXSxz72yp+iagCKooYC9Zn+mEQlmAbJ
/zv9T8UiYTeV9FMHYO3HoTlet/tYeBmWr5ukEncBt5fxfM3yGuipR721qUCD0Hub
mXx3r/YJ5LerSjS6SBug2i8lusSkF6mRJUNyF58ouNAqnj4RFGgmwdwuRZn0TVF7
SWL9kDIB9dxi/pu1AFPBpxq/T7fgxuR6EdCO5Gu/QTZdGDpWoKqN5UgfWQwvzcEC
AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAKivEQXuW3KfxeucuCE2ovCuHgzd5RP6k
RRUTDpufPmD8JH3b1vn0r4lq+u2WppwkFhlx99O89zygzuT19UtefUQ5Fgll0dbQ
vfgICiRvQFoYw427QWUS29Z4wNZM384TkCkWPoh7zzsIz8EBzAbv8a/OcTIcsYYu
QCrozqhqMnetHqhz7D9ShWAxP7rKGgf3lTC0ehpax8b6P24Q1Yuk3BsB6ErrAMCD
FXoIW/a9jy9lgm1oIeBvGSWZCaoVE+4x3JYhtozpx1WlapdRxEYvNxzpcF7o35MS
Ff9AHyLdYUqN4Q4IdwYOmpQnfN/dZhx5aAGjvcs/iQms/Ed92CKs4g==
-----END CERTIFICATE-----
1
2
$ git config --local http.sslCAInfo /path/cert.pem
$ git config --local --unset http.sslCAInfo
1
2
$ git config --local http.sslVerify false #NO NEED TO USE THIS
$ git config --local --unset http.sslverify
  • Copy CA cert to /usr/local/share/ca-certificates.
    1
    2
    sudo update-ca-certificates
    sudo service docker restart

  1. opevpn 服务器开启
    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
    35
    36
    37
    38
    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert xxx.crt
    dh dh2048.pem
    server 10.8.0.0 255.255.255.0 //openvpnIP段
    ifconfig-pool-persist ipp.txt //分配的地址记录在ipp.txt
    client-config-dir ccd //个人单独配置文件

    client-to-client //客户端可以互相连接
    keepalive 10 120
    comp-lzo

    user nobody
    group nogroup
    persist-key
    persist-tun
    status /tmp/openvpn-status.log
    log /tmp/openvpn.log
    verb 4

    mode server //运行模式
    tls-server //tls加密
    topology subnet //使用服务端子网
    push "topology subnet" //通知客户端使用子网

    auth-user-pass-verify /etc/openvpn/checkpsw.js via-env //密码认证
    client-cert-not-required //不认证证书
    username-as-common-name //使用用户名区别不同用户
    script-security 3

    route 192.168.2.0 255.255.255.0 10.8.0.2 //使用这个子网
    push "route 192.168.2.0 255.255.255.0 10.8.0.2" //通知客户端使用子网
    route 10.8.0.0 255.255.255.0 10.8.0.1 //使用这个子网
    push "route 10.8.0.0 255.255.255.0" //通知客户端使用子网
    route 192.168.3.0 255.255.255.0 10.8.0.2 //使用这个子网
    push "route 192.168.3.0 255.255.255.0 10.8.0.2" //通知客户端使用子网
  2. 连接到openvpn服务器
  • 开启路由转发
    1
    2
    3
    echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -A FORWARD -i eth0 -j ACCEPT
    sudo iptables -A FORWARD -i eth1 -j ACCEPT
  1. 配置路由
    • 可以在路由器上配置全局路由
    • 下面是需要连接 openvpn 的单独配置
      • Windows 需要cmd 管理员窗口执行:
        route add 10.8.0.0 mask 255.255.255.0 10.0.0.1
      • Linux 需要sudo 权限执行:
        ip route add 10.8.0.0/24 via 10.0.0.1

可以在各个网络出入口使用 tcpdump 抓包判断网络情况

  1. ##403

There are no projects with trackers for which you can create an issue!

  1. Issue statuses问题状态
    - 设置问题状态

  2. Trackers跟踪标签
    - 设置跟踪标签,跟踪标签中需要设置问题状态

  3. Roles and permissions角色和权限
    - 设置跟踪标签的权限,给予new issue权限

    阅读全文 »

  1. docker engine安装
  • docker install

  • debian install

  • centos install

  • windows install

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      curl -fsSL https://get.docker.com | bash

    dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    curl -s https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    yum install -y docker-ce




    2. docker官方文档
    - [docker administrator guide](https://docs.docker.com/engine/admin/start-containers-automatically/#restart-policy-details)
    - [docker user guide](https://docs.docker.com/engine/userguide/)
    - [docker proxy](https://stackoverflow.com/questions/23111631/cannot-download-docker-images-behind-a-proxy)
      $ cat /etc/docker/daemon.json
        {
          "registry-mirrors": ["https://www.example.cc"],
          "data-root": "/data/docker",
          "proxies": {
            "http-proxy": "http://proxy.example.com:8080",
            "https-proxy": "http://proxy.example.com:8080",
            "no-proxy": "localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
          },
          "exec-opts": ["native.cgroupdriver=systemd"],
          "log-driver": "json-file",
          "log-opts": {
            "max-size": "100m",
            "max-file": "3",
            "tag": "{{.ImageName}}|{{.Name}}|{{.ImageFullID}}|{{.FullID}}"
          },
          "storage-driver": "overlay2"
        }
      $ cat /etc/systemd/system/docker.service.d
        Environment="HTTP_PROXY=http://proxy.example.com:8080"
        Environment="HTTPS_PROXY=http://proxy.example.com:8080"
        Environment="NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
      $ systemctl daemon-reload && systemctl restart docker
      $ systemctl show --property Environment docker
        Environment=HTTP_PROXY=http://proxy.example.com:8080
      
    1
    2
    <!-- more-->
    - [docker command](https://docs.docker.com/engine/reference/run/)

    docker version/info/login
    docker run
    docker run -i -t
    docker pull/search/commit/push
    docker start/stop/kill/restart
    docker ps 正在运行的docker
    docker ps -a 所有的docker
    docker ps -l 最近运行的docker
    docker rm 删除docker
    docker images 列出image
    docker rmi 删除image
    docker rmi docker images -f dangling=true -q
    docker save/load

    docker network inspect bridge
    docker inspect ID/Name

    1
    2
    3
    3. ~~docker-compose~~`docker compose` `v3`版本是`docker`的子命令
    - [docker-compose command](https://docs.docker.com/compose/reference/overview/)
    - [docker-compose install](https://github.com/docker/compose/releases)

    curl -L https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-`uname -s-uname -m` > /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    
    

  1. ssh转发
  • ssh -N -f -L 5000:localhost:3306 root@23.226.78.113

    -N 不启动shell

    -f 后台执行

    -T不分配TTY

    -D动态转发、 -L本地转发 、 -R 远程转发

    SSH 端口转发自然需要 SSH 连接,而 SSH 连接是有方向的,从 SSH Client 到 SSH Server 。而我们的应用也是有方向的,比如需要连接 Server 时 ,Server 自然就是 Server 端,我们应用连接的方向也是从应用的 Client 端连接到应用的 Server 端。如果这两个连接的方向一致,那我们就说它是本地转发。而如果两个方向不一致,我们就说它是远程转发。本地转发与远程转发

  1. autossh官方

2016-11-25:

*默认情况下禁用SSH; 可以通过在引导分区中创建名为“ssh”的文件来启用
*启用默认密码时启用SSH时提示密码更改

官方文档

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
35
36
2017-04-10:
* Wolfram Mathematica更新到11.0.1版本
* Adobe Flash Player已更新至版本25.0.0.127
*使用PARTUUID来支持USB启动
2017-03-02:
*更新内核和固件(最终的Pi Zero W支持)
* Wolfram Mathematica更新到版本11
* NOOBS安装现在检查在NOOBS分区上是否存在'ssh'文件。
2017-02-16:
* Chromium浏览器更新到版本56
* Adobe Flash Player已更新至24.0.0.221版
* RealVNC Server和Viewer更新到6.0.2版(RealVNC Connect)
* Sonic Pi更新到2.11版本
* Node-RED更新到版本0.15.3
* Scratch更新到120117版本
*使用默认密码检测启用的SSH已移至PAM
*更新桌面GL驱动程序,以支持使用假KMS选项
* Raspberry Pi配置和raspi-config允许设置固定的HDMI分辨率
* raspi-config允许串行硬件独立于串行终端
*更新内核和固件
*各种小错误修复和可用性和外观调整
2017-01-11:
*使用FAT32格式的引导分区重新发布2016-11-25图像
2016-11-25:
*默认情况下禁用SSH; 可以通过在引导分区中创建名为“ssh”的文件来启用
*启用默认密码时启用SSH时提示密码更改
*包括Adobe Flash Player
*更新Chromium浏览器中的硬件视频加速
* Greeter现在使用外观设置中最后一个设置的背景图像,而不是pi用户
*更新版本的Scratch
*从raspi-config和Raspberry Pi Configuration中删除Rastrack选项
*能够禁用图形启动启动屏幕添加到raspi-config和Raspberry Pi配置
*外观设置对话框标签为在小屏幕上更好地工作
* Raspberry Pi配置现在需要当前密码才能更改密码
*各种小错误修复
*更新固件和内核
阅读全文 »

mysql_config_editor是MySQL5.6.6以后版本的工具。这个工具可以认证信息加密存储在.mylogin.cnf中,通常这个文件在Linux用户的家目录和Windows的%APPDATA%\MySQL目录中。

.mylogin.cnf文件未加密的示例如下:
1
2
3
4
5
6
7
8
[client]
user = mydefaultname
password = mydefaultpass
host = 127.0.0.1
[mypath]
user = myothername
password = myotherpass
host = localhost

实际使用时密码会被加密。

大坑!!! 含有特殊字符的密码不能加密成功,没有报错,但是登陆会提示密码错误,让人迷惑。 —-于2017/04/01更新

阅读全文 »

  1. DNS服务器
    • 如果资金充足的话,建议使用BGP机房,2-3台DNS服务器均衡,通常使用bind软件。
      • BGP(边界网关协议)主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。
        • 中国网通 、中国电信、中国铁通和一些大的民营IDC运营商都具有AS号,全国各大网络运营商多数都是通过BGP协议与自身的AS号来实现多线互联的。
        • 使用此方案来实现多线路互联,IDC需要在CNNIC(中国互联网信息中心)或APNIC(亚太网络信息中心)申请自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到其它的网络运营商的网络中。
        • 使用BGP协议互联后,网络运营商的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保证不同网络运营商用户的高速访问。
      • BGP 机房的优点:
        1. 服务器只需要设置一个IP地址,最佳访问路由是由网络上的骨干路由器根据路由跳数与其它技术指标来确定的,不会占用服务器的任何系统资源。
        2. 服务器的上行路由与下行路由都能选择最优的路径,所以能真正实现高速的单IP高速访问。
        3. 由于BGP协议本身具有冗余备份、消除环路的特点,所以当IDC服务商有多条BGP互联线路时可以实现路由的相互备份,在一条线路出现故障时路由会自动切换到其它线路。
        4. 使用BGP协议还可以使网络具有很强的扩展性可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。这个是双IP双线无法比拟的。
    • 如果资金紧的话,可以购买专业的dns服务,比如国内的dnspod
      阅读全文 »

使用CDN后在网页服务器日志中显示真实的用户IP地址

真实IP:为解决这个问题,可以通过在云加速转发的HTTP头信息中增加 X-Forwarded-For 信息,用于记录客户端的真实IP,这时web服务器的日志就可以使用 $http_x_forwarded_for变量记录远程客户端的真实IP。格式如下:
  1. Nginx
    '$http_x_forwarded_for - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" ';
  2. Apache
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
0%