冯小贤 发布的文章

我的小鱼你睡着了,还认识早晨吗?
昨夜你曾经说,
愿夜幕永不开,
你的香腮边轻轻滑落的,
是你的泪,还是我的泪?
吻别的那个季节,
不是已经哭过了吗?
我的指尖还记忆着,
你慌乱的心跳,温柔的体香里,
那一缕长发飘飘。

我的小鱼你睡醒了吗,还记得夜晚吗?
早晨你曾说过,
愿黎明曙光永不落下,
你的长发边轻轻滑过的,
是他的手,还是我的手?
不是沉睡了吗,
我以为你一尘不变。

我的小鱼你离开了吗,一个人离开
从下着雪的湖面下离开,
你曾说过离别,
为了更好的再见,
我无法忍受离别的画面,
而选择!
而选择,
我的小鱼你会回来吗?
还认识我吗?
你曾经说过,
变化的是时间,不变的是你我,
你身边陪你走过的,
是你自己的心?还是他人的心。
不是已经走远了吗?
我还在看着夕阳,
看着自己被拉长的身影,
我的小鱼你不回来了。

我认不出你了,
我曾说过的也记不清了,
变化的是时间,更是你我。
我在守着黎明,
等待黎明的曙光。
我的小鱼,
我是不是也该走了,
我认识早晨
还记得你曾说,
愿夜幕永不开启,
你的香腮边轻轻滑落的,
是我的泪,
在那个季节已经哭过了。
我的指尖还记得,
你慌乱的心跳,温柔的体香,
那一缕长发飘飘。

我的小鱼,
你走的路在哪,
我已经出发了。

--《魁拔Ⅲ战神崛起》

远天的战歌,欢迎回来,亲爱的魁拔!

官方活动: https://mourl.cc/uDGKyH

一般设置代理只需按以下来设置是没有问题的,但是今天我们要操作的websockt

server {
    location / {
        proxy_pass http://127.0.0.1:10086;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_http_version 1.1;
        proxy_read_timeout 300s;
    }
}

nginx -t一下

会出现如下错误:
nginx: [emerg] unknown "connection_upgrade" variable

就是这里出现了个坑

其中涉及到了一个nginx的设计问题 End-to-end and Hop-by-hop Headers
我在这里还是不过多赘述了,以免误人子弟

map在nginx中是为一个或多个变量设置映射表

下面是需要添加的几项配置:

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    server {
        location / {
            #…
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
}

貌似联璧金融要倒了,去年上的k3车,还有1000多没出来。

希望不是618卖7亿多,带着小姨子跑路了。。。

2018.06.26 150块还在提现中,不抱太大希望了...
2018.07.20 APP还能打开...

自己编译php版本时出现的错误,哦,顺带说一句,可能php7以下会有出入,纯净系统
好长时间也是没有出文了,文档不是很想整理(¦3[____]

# 编译参数,基本就是自带的全装了
'./configure' '--cache-file=/opt/temp/cache/config.cache' '--prefix=/opt/temp/php/php-7.2.6' '--with-config-file-path=/opt/temp/php/php-7.2.6/etc' '--with-config-file-scan-dir=/opt/temp/php/php-7.2.6/var/db' '--disable-all' '--enable-short-tags' '--enable-opcache' '--enable-dba' '--enable-ipv6' '--enable-calendar' '--enable-wddx' '--enable-static' '--enable-inifile' '--enable-inline-optimization' '--enable-cli' '--enable-ftp' '--enable-filter' '--enable-gcov' '--enable-maintainer-zts' '--enable-json' '--enable-hash' '--enable-exif' '--enable-mbstring' '--enable-mbregex' '--enable-libgcc' '--enable-pdo' '--enable-posix' '--enable-embed' '--enable-sockets' '--enable-debug' '--enable-phpdbg' '--enable-zip' '--enable-bcmath' '--enable-fileinfo' '--enable-ctype' '--enable-cgi' '--enable-soap' '--enable-pcntl' '--enable-phar' '--enable-session' '--enable-tokenizer' '--with-imap-ssl' '--with-ldap' '--with-tidy' '--with-kerberos' '--with-xmlrpc' '--enable-fpm' '--enable-dtrace' '--with-pcre-regex' '--with-pcre-dir=/usr' '--with-mhash' '--with-mcrypt=/usr' '--with-zlib=/usr' '--with-curl=/usr' '--with-readline=/usr' '--with-libedit=/usr/local' '--with-gd=shared' '--enable-gd-native-ttf' '--with-png-dir=/usr' '--enable-intl' '--with-openssl=/usr' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-sqlite3' '--with-pdo-sqlite' '--with-pgsql=/usr/bin' '--with-pdo-pgsql=/usr/bin' '--enable-dom' '--enable-libxml' '--enable-simplexml' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-xsl' '--with-libxml-dir=/usr' '--with-gettext=/usr' '--with-iconv' '--with-bz2=/usr' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--with-gmp=/usr' '--with-pear=/opt/temp/php/php-7.2.6/lib/php/pear' '--with-libdir=lib64' '--with-mcrypt=/usr/lib64' '--with-readline'

错误: configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/
解决方法: yum install curl-devel

错误: configure: error: jpeglib.h not found.
解决方法: yum install libjpeg-devel

错误: configure: error: png.h not found.
解决方法: yum install libpng-devel

错误: configure: error: To enable code coverage reporting you must have LTP installe
解决方法: yum install -y lcov

错误: configure: error: Cannot find sys/sdt.h which is required for DTrace support
解决方法: yum install -y systemtap-sdt-devel

错误: configure: error: Cannot find OpenSSL's libraries
解决方法: yum install openssl openssl-devel openssl-libs
备注: 64位系统在编译时加上--with-libdir=/usr/lib64, 或者把/usr/lib64/libssl.so复制到/usr/lib/libssl.so

错误: configure: error: Unable to locate gmp.h
解决方法: yum install -y gmp gmp-devel

错误: configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
解决方法: yum install -y icu libicu libicu-devel

错误: configure: error: Please reinstall libedit - I cannot find readline.h
解决方法: yum install -y readline readline-devel
备注: 64位系统在编译时加上--with-readline, 可能还需要你去单独下载编译最新版本的libedit

错误: configure: error: Cannot find libtidy
解决方法: yum install -y readline readline-devel

错误: configure: error: Cannot find OpenSSL's <evp.h>
解决方法: yum install -y openssl openssl-devel libssl-dev

错误: configure: error: Please reinstall the BZip2 distribution
解决方法: yum install -y libbz2-dev

错误: configure: error: Please reinstall the libcurl distribution
解决方法: yum install -y curl-devel, apt install libcurl4-gnutls-dev

错误: configure: error: mcrypt.h not found.
解决方法: apt install libmcrypt4-dev

错误: configure: error: Cannot find libpq-fe.h.
解决方法: apt install libpq--dev

错误: configure: error: Please reinstall readline - I cannot find readline.h
解决方法: apt install libreadline-dev

错误: configure: error: xslt-config not found.
解决方法: apt install libxslt1-dev

已经不行了哟

前几天的沙龙bug,相信很多人都去蹭了,然鹅我就在旁边静静的看着你们翻车

今天我告诉你们领首页新出的活动,云数据库mysql入门机型买3年,点进页面里购买时长最多只有6个月(感觉不够呀)

查看了下订单提交信息,成功购买了3年
购买成功

将下面代码复制,保存为html文件,打开页面点击链接跳转,即可购买

<a id="get-mysql" href="#">点我领取</a>
<form action="https://buy.cloud.tencent.com/order/check" method="post" style="display:none">
    <textarea name="itemDetails">{"raw_goodsData":[{"type":"cdb","goodsCategoryId":"100016","regionId":4,"projectId":0,"zoneId":200001,"goodsDetail":{"pid":12074,"timeSpan":36,"timeUnit":"m","subType":"CUSTOM","payType":0,"mem":256,"disk":50,"cdbMem":256,"cdbVolume":50,"vpcId":0,"subnetId":0,"zoneId":200001,"type":"cdb","cdbInstanceType":"CUSTOM","mysqlVersion":"5.6","devClass":"Z3","action":"applyCdb","curDeadline":"0000-00-00","instanceRole":"master","projectId":0,"goodsNum":1,"payMode":1,"saleByZone":1,"productInfo":[{"name":"实例类型","value":"主实例"},{"name":"计费模式","value":"包年包月"},{"name":"配置类型","value":"高IO版"},{"name":"配置","value":"256MB内存,50GB存储空间,MySQL5.6"},{"name":"地域","value":"华东地区(上海)"},{"name":"可用区","value":"上海一区"},{"name":"所属网络","value":"基础网络"},{"name":"项目","value":"默认项目"},{"name":"数据复制方式","value":"异步复制"}],"protectMode":0,"deployMode":0,"slaveZone":0,"backupZone":0,"originate":""},"goodsNum":1,"payMode":1}]}</textarea>
</form>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
    $('#get-mysql').click(function () {
        $('form').submit()
    })
</script>

过年到现在都挺忙的,还有游戏在等着我van,这篇文章拖的时间有点长

上次不是讲到家里树莓派在挂机嘛,用了frp穿外网可以在外面随时随地的在家下片,美滋滋

但是问题来了,家里硬盘里的资源我想在公司用了,平时也没有拷U盘的习惯,一般写完都是直接关闭保存在硬盘,最近笔记本都放在公司没拿回家,更是限制了我的操作。

于是闲暇之余写了个目录程序出来,当然写之前我也去网上找了下的,大部分都不是那种性(简)冷(洁)淡风格,老外的那种大大圆圆的看着太卡通了不适合我睾贵的身份,唯一一个上眼的就是DirectoryLister/DirectoryLister,但是需要把程序和文件放在一个目录下,已经拒绝了我去使用它。
网络上大部分可以找到的基本都是与DirectoryLister/DirectoryLister操作是相似的,均是放置在同一目录下。想想还是自己写吧????‍♂️,问题不大

目录程序界面

项目地址: https://github.com/flxxyz/directory-lister
演示网址: http://cloud.flxxyz.com/

本程序适用于有一定的php知识储备的开发人员使用,小白用户使用请先了解一下composer使用

真的是哇的一声哭出来了(´;ω;`)

在自己的git站上花Q了一下某内容审查系统,居然真的被ban掉了!!!

我迅速检查机器ip,没有被连坐,真是太好了( ´_ゝ`)

但是我买的十年短号域就这样被ban了我不甘心呀(╯‵□′)╯︵┴─┴

谷歌大法了一下,解决方法大概就4种,如果大佬还知道有什么抢救办法也可以告诉呀 (´▽`ʃ♡ƪ)"

解决方法

  1. 把域名切换至国内dns解析
  2. 去备案(备...备nmlgb的案)
  3. 换域名(走开)
  4. 找个大厂IP给域名做A记录,接下来听天由命

第一种解决不生效,pass

第二种和第三种不予采用,pass

抱着希望只能使用第四种方案,听天由命了

时间线

  • 2018.3.2 开始被墙
  • 2018.3.3 持续中...
  • 2018.3.4 持续中...
  • 2018.3.5 持续中...
  • 2018.3.6 出现好转
  • 2018.3.7 已经有4个节点解析到企鹅爸爸的IP了_(:3 」∠ )_
  • 2018.3.8 (,,゚Д゚)开心,已经有13个节点回来了
  • 2018.3.9 (´ー`)变成9个了,期待的第4天
  • 2018.3.10 凉了半截
  • 2018.3.11 (´ー`)一首凉凉送给我

确保本身已经安装php再进行下面的操作

类unix

如macosx, ubuntu, centos, archlinux, debian这类系统

php -i | grep "/php.ini"

类unix系统

windows

如果没有添加环境变量,请将php目录添加至环境变量!!!

php -i | findstr "php.ini"

windows系统

通用

创建一个php文件,往里写入如下内容

  1. <?php
    echo phpinfo();

    通过浏览器访问

    通用

  2. echo(str_replace("\","/",str_replace("ext","php.ini",ini_get("extension_dir"))));

    慕若曦dalao评论区又给出来一种,明白的就用

在xx月xx号,我入手了树莓派3b,某宝300,清单如下:

  • 板子199
  • 电源35(其实我有5v2a的充电器还有充电宝)
  • 辣鸡无线键盘30
  • 亚克力壳子15
  • 风扇加扇热片10块左右

很奇怪的一点,我买的国产板子e14,发来了英国的rs

当然还要有内存卡,我有个8g的,但是我还是去狗东买了三桑64G的evo,130还行,不在意外观的风扇键盘都可以不要的,再买个16G卡,300以内肯定可以搞定

回到正题上来

平时还要上班呀,派甩在家里就跟300买了一堆辣鸡放在家里,这个时候就要用到了内网穿透了

作为曾经一位使用过ngrok的用户来说,ngrok真辣鸡(╯▔皿▔)╯

安装配置相当麻烦,配置完成后还各种问题,连接失败,掉线,xxx问题

转战使用别人的ngrok免费服务吧(此处不是打广告),也有掉线问题,用户体验不佳,放弃!

但是入手派后,我还是选择了看ngrok,服务器的问题还好说,但是派的问题多多还解决不了,需要吐槽的点太多了,直接跳到frp上去


国产良心软件(我就是要吹它),配置简单,使用简单,部署方便,资源消耗低(我没有收钱的(╯‵□′)╯︵┻━┻)

最关键的是有中文文档!!!中文文!!!中文!!!中!!!

0x0

这里我用虚拟机吧,我现在在公司,派在家里,我要是重启frp就掉线,那就没有后面的操作了( ´_ゝ` )

虚拟机配置(此处相当于树莓派)

  • CentOS Linux release 7.4.1708 (Core)
  • 内核版本 3.10.0-693.11.6.el7.x86_64
  • 架构 x86_64
  • 内存512M
  • CPU2核

服务器配置
鹅厂香港1块钱机子

  • CentOS Linux release 7.4.1708 (Core)
  • 内核版本 3.10.0-514.21.1.el7.x86_64
  • 架构 x86_64
  • 内存1G
  • CPU1核
  • 带宽1M

在他们的release页面选择你要使用的版本

这里我就用了frp_0.15.1_linux_amd64.tar.gz这个包,如果你要使用树莓派3b的版本,官方的arm包使用是有问题的,我的派是archlinux系统,编译的客户端包在这里frpc-0.15.1-raspberrypi.zip,如果想安装archlinuxarm可以看我的这篇文章

到此准备工作结束了

当然这些都是在你可以使用已有的二进制文件的情况下操作的,不能操作请自行单独编译

0x1

注意: 接下来的操作我们都是在root用户下操作的,其他用户请自行判断使用sudo命令

wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.15.1/frp_0.15.1_linux_amd64.tar.gz

tar -xvf frp_0.15.1_linux_amd64.tar.gz

cd frp_0.15.1_linux_amd64

ls -al  // 与ll命令一样

解压后的文件应该是下面酱的

frp解压文件列表

客户端

删除如下文件

rm frps frps_full.ini frps.ini LICENSE

客户端保留的文件
客户端保留的文件

服务端

删除如下文件

rm frpc frpc_full.ini frpc.ini LICENSE

服务端保留的文件
服务端保留的文件

      • -

温馨提示

frpx_full.ini的配置为官方允许的所有配置项,frpx.ini为基础配置(建议使用,不然你都不知道自己哪里出现错误)

此处x表示客户端的c与服务器的s

0x2

这里我使用基础配置文件

服务端需要开启7000监听frp服务,6000监听转发客户端ssh服务

服务端开放端口如下执行

使用iptables的pong友

iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
iptables -A INPUT -p tcp --dport 6000 -j ACCEPT
service iptables save

使用firewalld的pong友

firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=6000/tcp --permanent
firewall-cmd --reload

0x3

地基已经搭好了,可以开始运行frp了

服务端

我们执行下面这条操作,开始运行frps服务器

./frps -c ./frps.ini

运行状态如下图(那个说什么有安全问题的等连接没问题了再来调┑( ̄Д  ̄)┍)
开启frps服务器

客户端

我们需要配置服务器ip地址才能穿透至外网,所以使用nano,vi,vim等编辑器修改配置文件中的server_addr

[common]
server_addr = 你的服务器ip
server_port = 7000

修改完成可以保存了,执行下面这条操作

./frpc -c ./frpc.ini

看!分配了id,ssh已经成功代理了( •̀ ω •́ )✧
成功连接

这时候你如果回头看服务器的控制台也会有成功的消息

0x4

现在可以测试一下能否成功连接到虚拟机的ssh辣(●ˇ∀ˇ●)

可以很清晰的看到,当前在线的用户有两名,可以看到pts/0的用户在执行我们之前的监听的命令
美滋滋

到这里frp已经算是成功运行了

但是...

我们不可能一直开着终端吧,这里我把我的启动停止脚本分享出来

脚本有点不适用了,自己写一个吧。。。

0x?

距离上一次发这种教程文章好久了,还说是要发ssh的无密码登陆,在几个服务器上公钥登陆都不一样,有点坑,发文章的目的就是解决这其中的问题,好辣,就酱。

晚安爱你哟