打开/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.1.199
netmask 255.255.255.0
gatway 192.168.1.1
~                                                                                                             
~

如果dhcp

iface eth0 inet dhcp

网关

/etc/resolv.conf
nameserver 192.168.1.1
nameserver 0.0.0.0  
/etc/init.d/networking restart

失败,查看原因,找不到driver,eth0执行

dmesg | grep eth 

才发现

[5.715564] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:7d:bf:43
[5.715573] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
[5.719709] e1000 0000:02:01.0 ens33: renamed from eth0

所以改成ens33就行了

本机依次安装了 jdk1.8、jdk1.6 和 jdk1.7 三个版本的 jdk,由于maven打包android程序最高只支持到 jdk1.7,因此需要将jdk版本该为1.7。

修改环境变量,将JAVA_HOME的目录定义为jdk1.7所在的目录。然后在命令行中执行 “java -version”,查看当前 java 版本,惊奇的发现竟然还是1.8。

这里写图片描述

于是当即切换到 java1.7 的 bin 目录,还是执行 “java -version”,查看其版本信息,发现显示的是 java1.7,正常。

这里写图片描述

因此怀疑是不是哪里还有 java.exe。这种东西不能只靠猜。

Windows下获取命令执行的路径用 where “cmd”
Linux下获取命令执行的路径用 whereis “cmd”

这里写图片描述

注意:这里是按拼音顺序排的,不是按搜索的优先级顺序排的。

进入 C:\ProgramData\Oracle\Java\javapath 目录,可以看到 java.exe 文件的类型是
.symlink(符号链接类型)指向 C:\Program Files\Java\jre1.8.0_101\bin\java.exe 文件。

将其替换为jdk1.7的java.exe,发现 “java -version”,还是1.8。替换C:\Windows\System32\java.exe中的java.exe后,java版本成功变为1.7。

这说明,命令行中会优先搜索C:\Windows\System32目录下的文件。

apt-get install pptpd

nano /etc/pptpd.conf

选择服务器和客户端ip

nano /etc/ppp/pptpd-options

配置dns

echo “USERNAME pptpd PASSWORD *” |  tee -a /etc/ppp/chap-secrets

快速加用户

/etc/init.d/pptpd restart

重启

nano  /etc/sysctl.conf

打开ipv4转发

sysctl -p

重载

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  (不管用就去掉eth0)

iptables -t nat -A POSTROUTING  -j MASQUERADE

设置nat

 /etc/rc.local 里面写入上面这句和pptp启动语句,开机自动配置

/etc/init.d/pptpd restart

更新!vultr 建立应用镜像可以瞬间搭建支持手机 2017.5.8

——————————-

搭建vpn首先apt-get安装openvpn,貌似还需要什么lzop,一并装上

然后看看能不能用tun

cat /dev/net/tun

in bad state说明可以

新版openvpn跟easy-rsa是分开的

所以就单独再装上easy-rsa

这里说一下:

当时看别人教程的时候总是以为easy-rsa和openvpn是配套的,这是一开始openvpn捆绑easy-rsa造成的错觉

easy-rsa生成秘钥和公钥,是完全独立的事情,只不过openvpn拿来用罢了

窝草我越来越懒了,连代码格式都懒得上了

先说easy-rsa吧

先cd到easy-rsa文件夹内,找/usr/share/easy-rsa

然后

source vars

蹦出clean啥的乱七八糟的就对了

然后执行:

./clean-all

./build-ca

生成服务端密钥

./build-key-server server

生成客户端密钥

./build-key client  (client1也行,随便起个名)

生成Diffie Hellman

./build-dh

这个时间比较长,出.*++…+..*啥的

等搞完会发现这几个操作的结果都在keys文件夹下:

ca.crt

client.key

client.crt

这三个是客户端用了,ftp下来

ca.crt

server.key

server.crt

这三个是服务器用的,记住路径,最好还是复制到/etc/openvpn下面,别再被覆盖了

然后就是配置openvpn了,新版openvpn有example,直接复制过来就可以用的,路径:

/usr/share/doc/openvpn。。。。。

里面有个server.conf.gz,解压到/etc/openvpn/server.conf,百度一下:

gunzip –c filename.gz > filename gunzip

里面不用改啥东西,反正我改了(2017年8月6日注:不加下面这几行会出现连接成功分配到内网ip但是外网仍然不代理的情况!)

push “redirect-gateway”
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”

貌似是选网关DNS

里面的ca啥的证书要相对路径和绝对路径正确,否则程序找不到证书

然后保存

开启端口

iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

 10.8.0.0是钦定的,想改跟server.conf里面的一起改,注意这里的是/16而server.conf里面的是24,原因没探究

然后设定端口转发

设定/etc/sysctl.conf 内容

net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

然后重新载入生效

sysctl -p

然后 /etc/init.d/openvpn start 或者service openvpn start,

接下来是客户端:

把客户端用的三个文件放在 openvpn/conf下面,然后把example中的客户端配置文件下载下来,稍微改一改内容,windows后缀改为.ovpn

运行客户端,import 选择这个ovpn,然后连接就可以了。

出现了一个问题就是:可以连接vpn内网,但是上不去外网,原因发现了,是iptables没写对,写对之后就可以了,连起来还挺稳定,就是美国服务器延迟有点高。

开坑!

从头开始配置EMACS并记录下过程

首先安装好emacs24

我们的第一步不是学基础,而是配置好用emacs写wordpress!

【两年后:放弃】

算了,还是得过且过吧

如何打开两个shell:

M-X shell    –》 M-X rename-。。。重命名shell在buf中的名称,就可以新开一个shell了

树莓派如果默认开机不启动vnc或者ssh的话,打开raspi-conf调就行

树莓派2GPIO口对应(绿色为电路板区域)

树莓派使用温度传感器DHT11测温.py:

#!/usr/bin/python
import RPi.GPIO as GPIO
import time

channel =4 //GPIO4
data = []
j = 0

GPIO.setmode(GPIO.BCM)

time.sleep(1)

GPIO.setup(channel, GPIO.OUT)
GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)
GPIO.setup(channel, GPIO.IN)

while GPIO.input(channel) == GPIO.LOW:
  continue
while GPIO.input(channel) == GPIO.HIGH:
  continue

while j < 40:
  k = 0
  while GPIO.input(channel) == GPIO.LOW:
    continue
  while GPIO.input(channel) == GPIO.HIGH:
    k += 1
    if k > 100:
      break
  if k < 8:
    data.append(0)
  else:
    data.append(1)

  j += 1

print "sensor is working."
print data

humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]

humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0

for i in range(8):
  humidity += humidity_bit[i] * 2 ** (7-i)
  humidity_point += humidity_point_bit[i] * 2 ** (7-i)
  temperature += temperature_bit[i] * 2 ** (7-i)
  temperature_point += temperature_point_bit[i] * 2 ** (7-i)
  check += check_bit[i] * 2 ** (7-i)

tmp = humidity + humidity_point + temperature + temperature_point

if check == tmp:
  print "temperature :", temperature, "*C, humidity :", humidity, "%"
else:
  print "wrong"
  print "temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmp

GPIO.cleanup()

#!/usr/bin/python  
#-*- coding: utf-8 -*-  
import time  
import RPi.GPIO as GPIO  
GPIO.setmode(GPIO.BCM) #使用BCM编码方式  
#定义引脚  
GPIO_TRIGGER = 23  
GPIO_ECHO    = 24  
#设置引脚为输入和输出  
GPIO.setwarnings(False)  
GPIO.setup(GPIO_TRIGGER,GPIO.OUT)  # Trigger  
GPIO.setup(GPIO_ECHO,GPIO.IN)      # Echo  
  
def dis():  #测距函数  
    GPIO.output(GPIO_TRIGGER, False) #设置trigger为低电平  
    time.sleep(0.5)  
    GPIO.output(GPIO_TRIGGER, True) #设置trigger为高电平  
    time.sleep(0.00001)  
    GPIO.output(GPIO_TRIGGER, False)  
    start = time.time()  #记录发射超声波开始时间  
  
    while GPIO.input(GPIO_ECHO)==0:  
        start = time.time()  
  
    while GPIO.input(GPIO_ECHO)==1:  
        stop = time.time()  #记录接收到超声波时间  
      
    elapsed = stop-start   #计算一共花费多长时间  
    distance = elapsed * 34300  #计算距离,就是时间乘以声速  
    distance = distance / 2  #除以2得到一次的距离而不是来回的距离  
    print "Distance : %.1fcm" % distance  
  
try:  #用于捕捉异常  
        while True:  
                dis()   #调用测距函数  
                time.sleep(0.5)  
except KeyboardInterrupt:  
        GPIO.cleanup()  

首先安装postfix和postfixadmin

然后上http   /postfixadmin/setup.php

输入setup密码,gen到密文,插入config

但是在/var/www/html下没有

找了找发现在/etc/postfixadmin下

根据指示插入保存

然后继续setup

完成后建立域名用户和邮箱

给qq邮箱发信能收到(在垃圾箱

qq发回来收不到

可能是黑名单的问题

然后查看日志/var/log/mail.log

发现reject

大概是因为白名单里没有qq服务器,被过滤了

准备加qq到白名单

然后服务器ssh崩了

原手机没在身上,没法重启服务器

先搞到这吧

后来发现RCPT问题太烦人了,而且网站开这么多端口太危险,还是先用匿名邮箱吧

获得符合grep条件的进程号并杀死

ps -ef | grep pts
kill 查到的pid

这里的ps -ef 是查看所有进程,ps拿出来的用户 进程和pid离得比较近,手机用top看屏幕太窄,有用信息又挤在两边,往往找对应pid找花眼

e 显示所有进程(-e all processes )

f 全格式(-f full)

ps是命令,参数要写在-后面,可以写在一起,如ps -ef,ps -aux等

grep过滤其他关键字也一样,不只是杀死其他用户终端

kali2滚动源

deb http://http.kali.org/kali kali-rolling main non-free contrib


新服开启vsftpd

apt-get install vsftpd
nano /etc/ftpuser
#注释掉root
service vsftpd start

apt-get出现没有公钥

gpg --keyserver pgpkeys.mit.edu --recv-key  ED444FF07D8D0BF6
gpg -a --export ED444FF07D8D0BF6 |  apt-key add -
apt-get update

添加中文支持

dpkg-reconfigure locales

install pip

Install pip and virtualenv for Ubuntu 10.10 Maverick and newer
 
apt-get install python-pip python-dev build-essential 
pip install --upgrade pip 
pip install --upgrade virtualenv 
For older versions of Ubuntu
 
Install Easy Install
apt-get install python-setuptools python-dev build-essential 
Install pip
easy_install pip 
Install virtualenv
pip install --upgrade virtualenv 


apt-get dist-upgrade

mysql_config not found

apt-get install libmysqlclient-dev
wget https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
tar -xzvf MySQL-python-1.2.3.tar.gz 
cd MySQL-python-1.2.3.tar.gz 
python setup.py install

Metasploit  Bundle Gem

apt-get install ruby
gem install bundle
cd metasploit-framework
bundle install  

/ mkmf.rb can’t find header files for ruby at…

 如果是在centos等系统下面,执行命令:yum  install   ruby-devel 

  如果是在Ubuntu等系统下面,执行命令:apt-get  isntall   ruby-dev  
checking for pg_config... no
No pg_config... trying anyway
apt-get install Postgresql

apt-get install lib[lack_of ***.h]-dev

安装php5.5 mysql-server* php5-mysql apache2

1.源问题

装上debian8自己又加了个kali源(方便下软件),不过kali源和debian8冲突,apt-get 会出现版本不一致现象 

 # apt-get install libpq-dev 
Reading package lists... 
Done Building dependency tree Reading state information... 
Done Some packages could not be installed. 
This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. 
The following information may help to resolve the situation: 
The following packages have unmet dependencies: libpq-dev: 
        Depends: libpq5 (= 8.4.1-1) but 8.4.4-0ubuntu9.10 is to be installed 
        Depends: libssl-dev but it is not going to be installed Depends: libkrb5-dev but it is not going to be installed 
E: Broken packages

于是删除了自带的debian8源,只留一个kali源,然后apt-get clean && apt-get update

结果装上wp之后出现

您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展。

继续安装php5-mysql,发现apt里没有,应该是kali源里没有,所以放弃kali,改回原来的源

更新后又出现问题:

Temporary failure resolving …

这是DNS解析问题,阿里的DNS挂了?

编辑DNS文件,加google的8.8.8.8 解决

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
apt-get update

2.权限问题

mysql+ftp均是root(黑阔们没洞还是不要强爆了,随机生成的带符号强密码)

wordpress配置好之后提示更新翻译,点更新出现无法创建目录,应该是权限不对

ls一下发现wordpress解压出来权限为nobody:nogroup

百度一下,发现解决方法:

将一个用户添加到用户组中,千万不能直接用: 

usermod -G groupA 

这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员。 

应该用 加上 -a 选项: 

usermod -a -G groupA user

我就是不听话,建个www用户,不加-a!

然后发现数据库可以连接进去,但是没有权限了,root的读取表的权限都没了

上网继续搜之后发现好像是mysql库文件权限被改了,修改/var/lib/mysql用户和组为mysql:mysql

可以了,然而还是没权限建目录,最后查了一下发现不用建www用户,apache用户直接就是www-data, 修改到www-data + 775,问题解决!

3.代码编辑器问题

wp自带的编辑器没有快捷插入代码,懒得自己修改html,找到一个很好用的插件kindeditor,直接wp里插件安装就可以用了。

readmore插件wp-utf8-excerpt很好用