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

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]

 

自动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

人教版电子课本下载器使用教程

写一个简单的教程,方便使用程序的朋友们

需要注意

某些课本人教版网站已经删除了或者不完整,所以使用程序下载的也是不完整的,只能去其他网站找找了。

我以下载高中化学选修6为例

1.打开人教版网站www.pep.com.cn,选择高中化学

pep

 

 

2.选择电子课本

 

 

 

pep_dz

 

 

3.选左边的电子课本

 

pep_dz2

 

4.选择选修6

pep_dz3

 

5.我这里打算从版权页开始下载

pep_dz4

 

6.把上面的地址复制下来

pep_dz5

 

 

7.粘贴到程序中,选择一个保存的目录,设置一个页数,要大于实际页数,对于这本书我设置150页,点击开始下载

pep_dz6

 

 

pep_downloading

8.下载完成后,打开保存的目录,检查一下页数是不是全的

pep_downloadcompl

 

 

 

9.对于我下载的这本书,后面有些下载的图片是重复的,所以需要删掉,找到书的最后一页

 

pep_dzzuihou

 

10.多余的内容删掉

pep_del

 

 

11.经检查,我下载的这本书 缺了一个第56页,我要在吐槽一下人教版网站,要弄就弄全了啊,偏偏就少1页,令人很是纠结啊。

一般来说这种情况,如果这一页没有太重要内容,就忽略掉吧

 

如果确实需要的话,去其他网站找找。

 

12.我在其他网站找到了这一页,把他补上

pep_zhaodaole

 

 

这下完整了。

 

如果需要制作PDF文档的话,可以网上找一个图片转PDF的软件就好了。

 

最后附上软件下载地址:http://blog.luobotou.org/pep-download/

 

使用mutt发带附件邮件提示No such file or directory

mutt默认发邮件命令

echo “邮件正文” | mutt -a 附件名 -s 主题名 收件人    或者

echo “邮件正文” | mutt -s 主题名 收件人 -a 附件名

e.g.

echo "content" |mutt -s "subject" 1234567@qq.com

我不清楚别人的VPS上如何,反正在我的VPS上发送带附件的邮件会提示错误 No such file or directory 有的VPS提示中文 无法附加文件

解决办法是,在标题和邮箱中间加2个”-”

e.g.

echo "c" | mutt -a /home/backup/1.txt -s "s" -- 12345678@qq.com

我的问题解决的,欢迎参与本文的讨论!

补充

mutt指定发件人

echo "content" |mutt -e "my_hdr from:name<test@qq.com>" -s "subject" "用户1<user1@gmail.com>" -c user2@gmail.com

意思为:发信人名字name;发信人邮箱test@qq.com; 收件人显示为“用户1”,邮箱为”user1@gmail.com”,抄送给”user2@gmail.com”

欢迎转载,但请保留原文地址 http://www.sjyhome.com/linux/mutt-no-such-file-or-directory.html

 

VPS简单性能测试命令

转载自:http://www.zrblog.net/2284.html

1.top

Top命令显示了实际CPU使用情况,默认情况下,它显示了服务器上占用CPU的任务信息并且每5秒钟刷新一次。你可以通过多种方式分类它们,包括PID、时间和内存使用情况。

top

第一行的load average即为系统负载,就是说整个VPS资源占用情况,如果正常建站,一般很少有超过5的时候;

第三行的,这个是CPU占用资源。还有后面的??%wa这个是硬盘状态,正常情况下CPU最好不要超过30%占用.wa指数长期30%以上,基本上硬盘就是不给力状态。

第四行是内存,总内存,已使用内存,空闲内存。我这里是W2的VPS,内存为1GB,大家可以参考下。

2.查看CPU,硬盘和内存信息

命令:cat /proc/cpuinfo(CPU信息)

cat /proc/meminfo(内存信息)

df –lh(查看硬盘信息)

这些,都只是简单的查看VPS的参数,我就不截图了。

3.下载测试

命令:wget http://cachefly.cachefly.net/100mb.test

100mbtest

图中有下载速率,我这个是W2的,下载超级不给力,大致上,如果你是100MB端口的话,应该7-10m/s,10MB端口的话,也有1m/s左右了。

4.磁盘I/O测试

命令:dd if=/dev/zero of=test bs=64k count=16k oflag=dsync

这个命令,是测试磁盘I/O性能的,图中有磁盘写入速率,可以作为参考。

iotest

或者使用此命令:dd if=/dev/zero of=test bs=64k count=4k oflag=dsync

【小提示】其实正常做站,这个DD值不必过于纠结,只要不是低得离谱都没有很大的差异,赵容本人也在DD值不到1M/s的VPS做了很久的站。

SSD磁盘用这个命令:hdparm -t /dev/xvda

经过上面两步测试,磁盘多出了2个文件:100mb.test,test,我们用命令删除它们。

rm 100mb.test                       rm test

5.UBI跑分综合性能测试

命令:wget http://www.CTOHome.com/linux-vps-pack/unixbench.sh;sh ./unixbench.sh;

这个命令运行的时间比较久,因为好多VPS都是赵容借来半小时看看简单性能的,所以一般没有做这项测试。这个测试完成后的综合分数也可以看出一个VPS的性能:一般高于400分就算正常水准,如果高于1000的话,就是非常给力。

6.其他测试命令

命令:iostat  (磁盘和内存使用率)

命令:Vmstat  (进程、内存、页面I/O块和CPU等信息的监控)