ngrok搭建(Windows服务端+Windows客户端)

1.go环境搭建(需要Linux系统)

1)下载源码,可以在http://www.golangtc.com/download

2)将其解压到/usr/local目录下:
tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz

3).在root环境下执行如下命令:
mkdir $HOME/go
echo ‘export GOROOT=/usr/local/go’>> ~/.bashrc
echo ‘export GOPATH=$HOME/go’>> ~/.bashrc
echo ‘export PATH=$PATH:$GOROOT/bin’>> ~/.bashrc
source $HOME/.bashrc

4). 安装go get工具
yum install mercurial git bzr subversion

2.获取源码

git clone https://github.com/inconshreveable/ngrok.git

 

3. 编译
1). 配置环境变量

export NGROK_DOMAIN=”ngrok.example.com”

ngrok.example.com替换成你自己的域名。

 

2). 生成自签名ssl证书

cd ngrok

openssl genrsa -out rootCA.key 2048

openssl req -x509 -new -nodes -key rootCA.key -subj “/CN=$NGROK_DOMAIN” -days 5000 -out rootCA.pem

openssl genrsa -out device.key 2048

openssl req -new -key device.key -subj “/CN=$NGROK_DOMAIN” -out device.csr

openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

cp rootCA.pem assets/client/tls/ngrokroot.crt

cp device.crt assets/server/tls/snakeoil.crt

cp device.key assets/server/tls/snakeoil.key

4. 交叉编译生成windows客户端
上述编译过程生成的服务端和客户端都是linux下的,不能在windows下用。如果想编译生成windows客户端,需要重新配置环境并编译。 交叉编译过程如下:

进入go目录,进行环境配置
cd /usr/local/go/src/

GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./make.bash
进入ngrok目录重新编译
cd /usr/local/src/ngrok/

GOOS=windows GOARCH=amd64 make release-server release-client
编译后,就会在bin目录下生成windows_amd64目录,其中就包含着windows下运行的服务器和客户端程序。

 

此时会遇到错误

Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

解决办法是,下载golang1.4版本,然后执行下面命令。

 

tar zxvf [go1.4.2.darwin-amd64-osx10.8.tar.gz]
cp go/ $home/go-bootstrap/
GOROOT_BOOTSTRAP=$home/go-bootstrap/
export GOROOT_BOOTSTRAP

 

5.客户端及服务端配置。

以3389远程桌面为例。

客户端新建一个ngrok.cfg文件,内容如下:

server_addr: “ngrok.example.org:1180”
trust_host_root_certs: false

tunnels:
mstsc:
subdomain: “mstsc”
remote_port: 4443
proto:
tcp: “127.0.0.1:3389”

然后写一个批处理,内容如下:

ngrok -config=ngrok.cfg start mstsc

服务端也写一个批处理,内容如下:

ngrokd.exe -domain=”ngrok.example.org” -httpAddr=”:801″ -httpsAddr=”:802″ -tunnelAddr=”:1180″

 

6.参考

1.http://www.360doc.com/content/17/0524/18/29401987_656833431.shtml

2.https://www.jianshu.com/p/0146801c1178

3.https://www.jianshu.com/p/4f79ae4f081c

Linux 网站目录和MySQL备份并上传FTP

SH文件下载:backup-template

 

#!/bin/bash
MYSQL_USER=root
MYSQL_PASS=
FTP_USER=
FTP_PASS=
FTP_IP=
FTP_backup=backup
WEB_DATA=/home/wwwroot

DataBakName=Data_$(date +”%Y%m%d”).tar.gz
WebBakName=Web_$(date +”%Y%m%d”).tar.gz
OldData=Data_$(date -d -3day +”%Y%m%d”).tar.gz
OldWeb=Web_$(date -d -3day +”%Y%m%d”).tar.gz

rm -rf /home/backup/Data_$(date -d -3day +”%Y%m%d”).tar.gz /home/backup/Web_$(date -d -3day +”%Y%m%d”).tar.gz
cd /home/backup

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES’ | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 – > ${db}.sql.gz)
done

tar zcPf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz

tar zcf /home/backup/$WebBakName $WEB_DATA
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
bye
END

L2TP+IPSec一键安装脚本

检测是否支持TUN模块
执行命令:

cat /dev/net/tun

如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常
检测是否支持ppp模块
执行命令:

cat /dev/ppp

如果返回信息为:cat: /dev/ppp: No such device or address 说明正常

终端里运行以下命令(CentOS):

cd /root
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
./l2tp.sh

终端里运行以下命令(Ubuntu):

cd /root
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp_ubuntu.sh
chmod +x l2tp_ubuntu.sh
./l2tp_ubuntu.sh

执行后会要求输入一些信息,如「Please input IP-Range:」意为输入本地IP段范围(本地电脑连接到VPS后给分配的一个本地IP地址),直接回车意味着输入默认值10.1.2;「Please input PSK:」PSK意为预共享密钥,即指定一个密钥将来在连接时需要用到,直接回车意味着输入默认值vpn。
输入了IP段范围和PSK之后,程序会显示你的VPS当前的IP(IPV4)、L2TP的本地IP(默认的话是10.1.2.1)、分配给客户端的IP段(默认的话是10.1.2.2-10.1.2.254)以及你所设置的PSK(默认的话是vpn),确认无误后,按任意键,程序便会开始自动配置。
安装完之后,会显示VPS当前的IP「ServerIP:VPS当前公网IP」、默认用户名「username:vpn」、默认用户名的密码「password:随机生成的6位字符串」、预共享密钥「PSK:你所设置的PSK,如果你之前没有设置则为默认值vpn」。

 

转载自网络

WordPress:为博客添加欢迎页

新建一个splash.html,编辑你个性的欢迎页面

更改index.php,

可通过检测HTTP_REFERER判断是否从页面内跳转或是从外部链接进入

决定是否显示欢迎页面,避免死循环

同时,我们只需要在访问首页时显示欢迎页面,所以 判断REQUEST_URI

<?php

$referrer = $_SERVER[‘HTTP_REFERER’];
$a=$_SERVER[‘REQUEST_URI’];

if (preg_match(“/blog.luobotou.org/”,$referrer)) {
define(‘WP_USE_THEMES’, true);
require(‘./wp-blog-header.php’);
} else {
if($a==”/”){
header(‘Location: http://blog.luobotou.org/splash.html’);}
else
{
define(‘WP_USE_THEMES’, true);
require(‘./wp-blog-header.php’);
}
}; ?>

.htaccess 301跳转

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^老域名.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.老域名.com$
RewriteRule ^(.*)$ http://www.新域名.com/$1 [R=301,L]

 

Centos安装和运行crond服务

今天在一台centos的vps安装S5,重启crond服务的时候出现:crond: unrecognized service.

貌似没有装crond,于是找到crond的安装方法。亲测可行

安装crontab

[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs

说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

用以下的方法启动、关闭这个cron服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig –level 35 crond on

自动ssh登录的几种方法

 

1. 自动ssh/scp方法==

A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux

在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110 “mkdir .ssh” (需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (将id_rsa.pub的内容追加到authorized_keys 中)

回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)

 

转载自:http://blog.csdn.net/netzsm/article/details/1783055