CentOS 7下安装pptp服务端手记

环境,初装的阿里云ECS最低配机型,CentOS 7 x64  (兼及linode的CentOS 7)

主要配置步骤

1. 安装前检查系统支持

a. 在安装之前查看系统是否支持PPTP

modprobe ppp-compress-18 && echo success

应该输出:success

yum install kernel-devel

b. 是否开启TUN/TAP

cat /dev/net/tun

应该输出:cat: /dev/net/tun: File descriptor in bad state

c. 是否开启ppp

cat /dev/ppp

应该输出:cat: /dev/ppp: No such device or address

如果环境不满足上面3个条件,表示很可能不支持pptp。  例外:linode的xen、kvm服务器,也是支持的pptp的。可能是linode内核是定制的,并不是外部ko模块,与原版CentOS表现有所不一致。

2. 安装必要包

a. 首先安装epel源

yum install epel-release

b. 安装pptp相关包

yum install ppp pptpd net-tools iptables-services

3. 修改相关配置文件

a. 主配置文件 /etc/pptpd.conf

结尾处增加如下两行,分别是pptp服务的虚拟网段网关,及分配给客户端的地址范围。

localip 192.168.9.1
remoteip 192.168.9.101-199

b. pptpd配置文件/etc/ppp/options.pptpd,结尾增加两行,给虚拟网段用的dns服务,可以使用主机商提供的dns服务器地址。

ms-dns 100.100.2.136
ms-dns 100.100.2.138

如果是linode等海外服务器,可以使用谷歌的公共dns服务器地址

ms-dns 8.8.8.8
ms-dns 8.8.4.4

c. 设置pptpd vpn服务器用户名密码,编辑文件 /etc/ppp/chap-secrets, 每行一套帐号,该文件默认有简短说明。一行帐号行示例如下,以空格分隔的4个字段:第1、3是用户名密码,其他两字段是星号

user1 * 111222333 *

d. 服务器允许ip转发内核,编辑配置文件/etc/sysctl.conf,增加如下一行

net.ipv4.ip_forward=1

4. 设置开机自动启动 pptpd, iptables,

ln -s /usr/lib/systemd/system/pptpd.service /etc/systemd/system/multi-user.target.wants/
ln -s /usr/lib/systemd/system/iptables.service /etc/systemd/system/multi-user.target.wants

 

5. iptables配置网络

a. iptables配置,配置虚拟网段NAT支持。如果pptp客户端不需要上网,可以忽略本步骤。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

,注意其中的eth0是本机网卡设备名,按实际情况修改;按虚拟网段设置NAT,如下

iptables -t nat -I POSTROUTING -s 192.168.9.0/24 -o eth0 -j MASQUERADE

b. 开放pptp端口1723,允许转发

iptables -I INPUT 7 -m state --state NEW -p tcp --dport 1723 -j ACCEPT
iptables -P FORWARD ACCEPT

c. 保存iptables规则

service iptables save

6. 阿里云ECS可能还需要几项特别设置

a. 如果windows下连接pptp,如果遇到519错误,是因为缺少内核模块 ip_nat_pptp ,运行modprobe ip_nat_pptp 即可加载,但最好设置开机自动加载:新建文件 /etc/modules-load.d/ip_nat_pptp.conf 内容为如下一行

ip_nat_pptp

b. 可能还要重建ppp文件:

rm /dev/ppp
mknod /dev/ppp c 108 0

c. 阿里云机器还要修改mtu:修改文件/etc/ppp/ip-up,在exit 0 前加入一行:

ifconfig $1 mtu 1500

d. 阿里云控制台里的安全区域,看上去跟防火墙或iptables类似的东西,要开启相应的端口。

7. 启动服务,加载相关匹配文件等

sysctl -p
systemctl start pptpd

或者单粗暴的reboot重启机器也行

centos 6 安装simple-obfs缺失及需要更新包

以下是依赖包,其中几个包centos本身不带,要到epel源中安装。autoconf, automake要更新为新版本

[root@vc6 feng]# yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y
[root@vc6 feng]# yum install epel-release
[root@vc6 feng]# yum install libev-devel libsodium-devel mbedtls-devel

 

 

下面几个文件中,#include <ev.h> 改成  #include <libev/ev.h>

[feng@vc6 simple-obfs-0.0.3]$ vim src/server.h
[feng@vc6 simple-obfs-0.0.3]$ vim src/resolv.c
[feng@vc6 simple-obfs-0.0.3]$ vim src/local.h

 

rpm打包参考

http://blog.csdn.net/chengfei112233/article/details/7641923

http://hlee.iteye.com/blog/343499

域名服务商、注册续费优惠码等

国内注册商有很多,但已经很多年不用了,多方面原因,可以自行google. 这里只说国外注册。更便宜,随便迁移,经常有有优惠码,更便宜。

最广为人行的是godaddy(狗爹),号称全球最大域名商。不过他们家域名续费价格通常有点高。还有name.com, namecheap等无数多个。

通常各域名商的初注册、域名转入,价格会比较便宜,所以一个捡漏的办法:每年换一次注册商!虽然有点不厚道,但确实节省了成本。其实转入60天后就可以下一次转入,这样多转几次,也相当于折腾着续费多年,不至于忘续费而丢掉。

域名商 name.com WHOIS隐私保护 优惠码 PRIVACYPLEASE  ,效果是隐私保护免费!

excel公式实现:根据当前单元格偏移位置引用计算、多条件查找

根据当前单元格偏移位置引用计算

直接上公式示例

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

作用:引用当前单元格上一行同列的值。
原理:自己查excel自带帮助的公式说明。
特点:可以无脑的将该公式粘贴到任意位置,即做相对引用,不受表格其他内容、位置的影响。
使用场景示例:如下图所示,尾行是计算周变化值/比例。选中格事实就是=B706-B698。每周会插入8行数据。使用了上面偏移位置方案,就不用每次更新下面公式,省心且不出错。

 

多条件查找

本方法来源于:https://www.zhihu.com/question/41820039/answer/93329442 在此表示感谢。

通用公式

=lookup(1,0/((条件1)*(条件2)*(条件3)),结果区域)

原理:参看出处说明

另外还有更多方法

华为mate 9折腾经验记录:google服务,twrp recovery, root等

使用android的历史,从最早的山寨平板开始,到使用近三年的glaxy nexus,再到nesux 5,从今年2月份开始换mate 9,至今已经半年多,记录一下经验。

mate 9的粗略印象

电池比较大,屏幕也略嫌大。华为对android做的定制,基本上还比较合理,自带的系统应用,也比较有用,比如名片扫描、二维码扫描、滚动截屏、天气、等。不便处也有,举例,最近应用列表下的清理按钮,太容易误点到,令人崩溃。

基本使用

网络:shadowsocks,kcptun,谁用谁知道。

重置与备份:华为手机助手,可以免root做整机配置备份,类似于固件工具箱的应用备份功能。

重置手机:可以通过eRecovery在线安装系统,官方不提供刷机包。

Google服务

google服务是绝对不可少的,即使在如此恶劣的网络环境下,借助shadowsocks神器。以前的系统,可能装第三方的google服务安装器,免root环境安装;最新的版本已经自带google服务了,所以整机备份后,通过eRecovery重装系统,再还原备份。

开机启动选项

Recovery: 关机状态下,按住音量上键+电源键开机,出现开机画面1-2秒后,放开电源键,音量上键继续按住不动,直至进入recovery;
出现开机画面即放开音量上键则进入恢复出厂、清空cache界面。
音量下键+电源,进入fastboot, 似乎解锁后就不能用了。

解锁等

fastboot 命令提示:failed <remote: command not allowed> 通常这种情况关闭手机找回就可以正常解锁了,选项在 “设置-云服务” 中。  from http://club.huawei.com/thread-12177115-1-1.html

第三方Recovery, Root

习惯使用twrp的recovery,不过twrp官方并不支持mate 9,所幸有高手做的mate9全系列适配版,当前已知最新版本为 3.1.0,(支持设备:MHA-L29 devices, MHA-L09 devices, MHA-AL00 devices, MHA-TL01 devices, LON-L29 devices, LON-AL00 devices)。直接下载链接 twrp-3.1.0-1-hi3660.img 。当前版本不支持机身存储的加密方式,所以要刷root包时,推荐使用tf卡。具体是:在twrp主界面 - install ,点下按钮切换存储器为sd/tf卡(默认是机身存储,sdcard目录里全是加密字符串)。

参考xda帖子:https://forum.xda-developers.com/mate-9/development/recovery-unofficial-twrp-huawei-mate-9-t3515617  ,本帖中有root的方法,使用的是Phh's superuser方案,只是因为习惯使用的是 SuperSU,故不采用。

root ,使用SuperSU的方案。当前版本 SuperSU 2.82-SR1,已经官方支持mate 9,直接下载SuperSU 2.82-SR1,注意需要 使用TWRP 3.1.0 ,系统固件 B182+ 以上版本。似乎有点诡异,以前刷这个无限重启,只好erecovery还原折腾;这次先刷了前面的phh's supersuer,因为没看到root管理器而装了supersu,但提示su文件被使用,于是死马当活马医而再刷supersu 2.82-SR1的zip包,竟然正常了,重启两次就进入系统。170920

参考xda帖子 https://forum.xda-developers.com/mate-9/development/root-supersu-2-79-t3573155

其它参考 http://www.teamandroid.com/2017/04/11/root-huawei-mate-9-emui-50-android-70-nougat/

180302后记:事实上,已经很久没有root了,之前折腾root方案的目的,其实只有一个:使用google位置记录,通过location_enable应用及xposed模块都不行;然而并没成功。于是不再root.

(个人探索)卸载windows 10自带应用方法

windows10自带了很多应用,说实在的,实在烂得让人失去吐槽的兴趣,卸载是最好的对策。网上有一些卸载方案,比如google搜索出的这两篇

感觉这里的方案有点简单粗暴,不够优雅。突然发现了一个更好的办法,利用windows任务管理器,只卸载让你感到恶心的那些“应用”。

方法如下:

  1. 如果你发现某个恶心的“应用”被打开了(比如双击打开某个视频文件后,打开了“电影与电视”),先不要关闭它。
  2. 打开windows任务管理器,进入“进程”选项卡,在“应用”一组里,找到上述应用,点右键 - 属性
  3. “属性”对话框的“常规”选项卡里的“位置”一项,是一个路径,形式如 C:\Program Files\WindowsApps\***** 最后一级目录(即前面星号代替部分)就是应用的包名,将包名复制到剪贴板
  4. 以管理员身份启动Powershell(可以在开始菜单里找到 Windows Powershell,点右键 - 以管理员身份运行),运行 Remove-AppxPackage 包名
  5. 完成。

这样就只卸载你不需要的那些应用。

 

MacPorts简介及日常应用与维护/mac port

MacPorts是在mac osx下的软件包安装系统,包含了一系列Unix/Linux工具、软件包等。同类软件还有HomeBrew。macPorts的优点之一是,它把所有软件安装到一个固定目录下,与osx本身完全隔离,不造成混乱。

安装MacPorts

 

有用知识

macports默认安装到/opt/local下

安装、卸载、升级装软件

安装软件:普通用户下运行 sudo port install {包名}   ;或者先sudo su切换到root用户下直接执行port install {包名},下面皆省略sudo 。

卸载软件:port uninstall {包名}      (其中包名)

更新软件:port upgrade {包名}

全面升级:port upgrade outdated

全面升级前,通常需要对macport自身升级(port会提示你的):port selfupdate

关于port下包名:指定版本号时包名会带空格,这时不要用引号括起来(括起来反而不认,这与bash习惯很不同),示例  port info gettext @0.19.3_1

其他有用命令

查看帮助:port help {子命令名}        (例如:port help search)

列出当前安装过的包:port installed          (注意不要用 port list installed,原因)

列出可用包:port list          (即可以通过port install安装的包)

搜索包:port search {关键词}          (有很多参数,port help search查看或文档

查看软件包介绍: port info {包名}

查看依赖包:port deps apache2

清理安装包时的临时文件:port clean {包名}    (注意不是卸载,更多参考

升级软件包时带-u参数可以同步清理旧软件包 port -u upgrade outdated

清理MacPorts里的老旧包、无用文件等

使用过一段时间后,/opt/local会变得很大(可通过 du -sh /opt/local 查看占用大小),这主要“得益于”(归罪于)port更新包时保留旧版。定时清理一下好了。

  1. 清理编译文件等 port clean --all installed
  2. 清理老旧包 port uninstall inactive

事实上这并不能让 /opt/local 变小很多,因为里面还有很多下载的源码 /opt/local/var/macports/sources/release/ 可以进去手工清理一下

某商vps上编译php时报错“undefined reference to `libiconv_open'”的处理

帮朋友的阿里云的服务器装wordpress。该服务器上面已经装了有好几个站点,web环境是wdlinux的所谓一键安装脚本,向来极其厌恶这种所谓的一键脚本,版本老化,目录不合理,乱。但为了兼容现有环境,还是决定在它上面继续。无语的是,这个web配置实在乱透了,nginx作前端,把动态请求反代到后方apache上,这样配置一个web站点,要同时设置两套web。而且还是使用php 5.2.17,这个老掉牙的版本!搞了半天,真心不想搞下去了。于是决定新安装php新版本,以php-fpm运行,简洁优雅地在nginx上跑。

之前自己服务器上路的是php 7.0.9,直接下载这个版本源码,使用之前自己的configure参数,但在make时出错了,错误消息第一行非常长,核心就是iconv有问题

undefined reference to `libiconv_open'

尝试安装iconv-devel等办法都使用了,都不行。

经过google,也有别的朋友遇到同样问题,make时加参数即可,如下:

 make ZEND_EXTRA_LIBS='-liconv'

堪称完美,在所有解决方案里最简便,向该博客作者表示感谢。 继续阅读

Microsoft Excel的坑:数据格式转换时的陷阱简析(含导数据经验/mysql)

首先一个不可否认的事实:Microsoft Excel是个使用简便、功能丰富的数据处理工具;但这不能掩饰它本身的不少缺陷,本文只讲其在数据转换时的陷阱,就是“坑”。

脑残的转义约定:双引号转义、不转义换行符

csv是常用的数据交换格式,但excel生成的csv文件却有几个脑残的约定(大概是微软自己的历史包袱所致),通常excel使用双引号括起来字段内容,如果字段内容中有双引号,则使用 \" 代替;还有其他特殊符号,也会做相应转义。所以,使用excel转换数据(如导入到MySQL)时,要注意处理这些问题。

换行符转义。可以事先在excel中替换,excel查找格里先清空格中内容,按几次Backspace再按几次Delete,确保真正的清空。按住Alt键不松开,输入数字10,此时格里没有任何显示,然后在替换格中输入\n,全部替换,即完成换行符的转义。

双引号转义。这个问题有点恶心。1)如果对内容一致性要求不高,可以将双引号完全删除(查找替换成空字符串)。2)将双引号替换成一个其他字符串(比如~^这类特殊字符、或者~~这样的组合字符串),事先在excel文件里查找、以确保该字符串不会在内容中出现。保存成csv后,再将该保护字符串替换成\",完成转义替换。

 Excel表导入MySQL的几个可选方案

导数据前一般需要事先建好目标表,目标表的字段长度可以适当大一此,避免导入失败。或者通过事先计算每个字段的最大长度,比如用awk 参考。下面是几种导入方法,按操作难度从易到难排列

  • 使用第三方工具(如navicat 等)直接导入,但不少时候会报错,而且原因不明。
  • excel转为csv,通过phpMyAdmin或Load Data等导入MySQL。
  • excel公式构造一系列insert 语句,拿到mysql里执行(粘贴到客户端里运行,或保存到文件让mysql加载)。
  • excel导入到ms access(微软自家产品内部有良好兼容性),再使用navicat等第三方工具导到mysql。
  • 自己写脚本处理。

后面只是几张图,随便参考一下吧。

navicat导excel到mysql报错

navicat导excel到mysql报错

EOF

windows下安装zip压缩版的mysql服务器端v5.7.16

环境:windows 10某个版本(写本文的最新版本)

目的:安装个mysql服务端,从官方下载的zip压缩版5.7.16,而不是msi版本。

操作过程折腾了,以前安装过多次,不过好像不是真正意义上的从zip安装,而是使用之前通过msi安装过的版本,后面只是注册成系统服务一项。

本次折腾的的操作,主要从官方是下载.zip版本压缩包,选择的是x64版,解压缩到合适的目录里,本文以 C:\Program Files\mysql\  为例。

step 0. 准备配置文件:复制my-default.ini得到my.ini ,修改其中的basedir, datadir两个参数,示例如下

basedir = C:\Program Files\mysql
datadir = D:\data\mysql-data

step 1. 安装为windows服务:管理员身份启动cmd,进入mysql/bin/目录,执行如下安装命令:

mysqld --install MySQL --defaults-file="C:\Program Files\mysql\my.ini"

注意:--install 参数必须在前,否则mysqld会认为你要运行mysqld进程,然后启动失败)

setp 2. 初始化数据目录:创建 D:\data\ ,注意不需要创建mysql-data子目录;运行 mysqld --initialize

step 3. 查root用户初始密码:查windows日志-应用程序日志,里面应该有类似如下一条

A temporary password is generated for root@localhost: 5cuiMezaNd>QFor more information....

其中5cuiMezaNd>Q即是默认密码,到命令行里修改一下吧,如下一行,将root密码改为000111, 会有交互提示输入旧密码的。

mysqladmin.exe -uroot -p password "000111"

step 4. 启动windows服务:net start MySQL. 完工。

Addition. 如需要卸载服务,到mysql/bin/目录里执行 mysqld.exe --remove 即可。需要的话删除mysql数据文件目录。

Pages: 1 2 3 4 5 6 7 8 9 10 ... 45 46 47 Next