何为 内网 转 外网从名称 我们就可以 猜到大概的意思。内网指的是我们的家庭网络(特指亚洲地区了),主要是我们亚洲地区公网IP不够每个家庭分配,所以就有了大的局域网内网。外|公网指的 可以直接被访问的网络为什么需要 为什么会 有 “内网转外网的工具“的需求?个人觉得原因有如下在我国的国情下面,基本都是内网IP,不像美国,个人家庭都是公网IP了购买公网IP就相当于要购买服务器,代价有点高本地化调试:例如微信开发基于以上的情况,就有各位大大们发明的各种方法实现 将本地内网网络 转化 为 公网的方法作用目前比较常用的作用有以下几点微信本地调试远程演示:可以随时将本地的程序 给 别人看工具介绍NO.1 Ngrokngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。我个人常用的是这个,用于微信开发调试,但是嘛最近不是那个二货搞了个带颜色的网站,导致提供免费服务的被微信封了,有时候哇,
需求背景在上一个章节我们讲究了私有云的部署,但是会有一个问题,我如果在外面,如何访问家里电脑上部署的私有云服务?其实这个问题在扩大化说 就是 如何可以在家庭网络以外 可以访问到 家庭网络:公网 访问 内网。内网转外网顾名思义:就是想办法把自己的内网机器 可以直接 让外网可以访问。由于我们互联网技术不是我们国家发明的,在加入互联网之后我们分配到的公网IP也不多,不像美国人口少IP还多,基本每家都有公网IP(好羡慕)。在我们国家需要公网IP必须要购买服务器或者家里安装电信网络。而我家的情况安装了电信公司提供的网络服务有一个 不固定的公网IP。我们的文章我主要解释我家里的网络情况。后面会介绍几种非网络服务商提供的公网IP的方式。电信网络公网IP如上图,通过ip138可以查询到,我的出口IP是上图。切记非电信供应商截图的IP不一定是通过你家,可能是通过多种路由设备转入到你家,这种就不行的。可以看到电信猫的管理界面IP和 ip138查询的一样,就说明我家的IP是公网IP如上图,我家里的网络是 电信
  背景最近做智能家居,需要用到一些应答词 需要自己录制。但是在mac下面通过 QuickTime 录制的是 m4a格式。但是应答词需要 wav格式。所以就需要转化了解决方法# sox 不行, ffmpeg 很麻烦,用 avconv 很简单。安装 如果没有就安装 # apt-get install libav-tools  avconv -i xx.m4a  xx.wav
需求背景工作多年之后发现有太多的电子资料到处存放。个人电脑是Mac,硬盘都不大,放不了太多东西。并且有时候想随时随地存放一些东西。所有就有了大家一个私有存储的需求个人休息在家经常喜欢看电影电视剧,所有就有个想法,上班空隙可以下载自己喜欢看的资源,然后晚上或者休息日可以直接在电视上看,这样就想到了通过DLNA服务来和私有云结合起来效果图私人存储PC手机端DLNA智能电视硬件准备上图是我家的私人机房,是不是很牛逼。哈哈。我们整个系统都搭建在Mini PC(如果只是个人测试可以随便搞个虚拟机就行了)上,非常小。适合放在家里。本人在京东购买的,有需要的可以私聊具体信息。硬件信息如下操作系统:Ubuntu 18.04硬件配置:8G内存 + 1T机械硬盘 + 4个CPU环境:nginx + fpm私人云:NextCloudnextcloud简介nextcloud 是一个php开发的软件,官网地址:https://nextcloud.com/  。官网提供app方便移动上传。同时PC端提供了
最近将树莓派操作系统重新安装了,然后发现了一些问题。这里分享出来给大家问题一:连接外置显示器黑屏解决方法:将SD卡 插入电脑,在电脑中找到SD卡 修改其中的config.txt文件#强制使用HDMI输出 hdmi_force_hotplug=1 #HDMI信号增强 config_hdmi_boost=4 #HDMI输出适配于计算机显示器 hdmi_group=2 #HDMI输出的分辨率及刷新频率 hdmi_mode=9问题二:启动之后显示屏无法占满解决方法如下截图问题三:默认SSH没有开启解决方法:将SD卡 插入电脑,在电脑中找到SD卡 ,在SD卡根目录 创建一个名为ssh的文件,然后把sd卡插回系统开机启动问题四:WIFI配置解决方法:将SD卡 插入电脑,在电脑中找到SD卡 ,在SD卡根目 创建一个 名为 wpa_supplicant.conf 的。wpa_supplicant.conf文件内容如下country=CN ctrl_interface=DIR=/var/run/
缘由为什么要做AIROBOT?其实自从我知道智能家居这个领域之后,就一直想打造一个自己的智能家居控制平台,算是我的一个梦。最开始的项目还是在安居客当时工作的时候做的,项目地址:https://github.com/apanly/autohome 需求是什么就像我们在公司开发产品一样,要先知道自己想实现什么需求,才能动工。其实本人最开始的想法就是能够控制家里的家电,例如电视,空调。现在目前变的越来越多,也发现需要掌握和学习的东西也越来越多了。技术选型操作系统:Ubuntu 18.04硬件配置:8G内存 + 1T机械硬盘 + 4个CPU。在JD沟通的一个minipc,为什么不用树莓派直接做,主要还是功能和需求越来越多,树莓派已经无法满足需求了框架:Python + Mysql + Flask项目地址:https://github.com/apanly/pi3Robot Show Time机器人微信通知生日到了前几天就会发微信通知提醒啦总述根据上面的截图,后面会一个一个给大
在上一篇文章中系统已经烧写到SD卡中了,接下来我们来启动,启动系统。为了方便操作,需要一个HDMI的显示器,USB鼠标和键盘。启动直接将SD卡放入树莓派,通电就启动了。不需要特殊配置就启动了配置网络我家里的网络都是wifi,所以我就直接连接到wifi上了,如下图,配置完成之后IP是192.168.0.106开启远程SSH#在终端中操作 $ sudo raspi-config如上图选择 Interfacing Options 选择上图 选择 SSH,根据提示操作完成就开启了SSH。 然后就可以通过其他机器远程连接了。接下来我就在Mac笔记操作了#ssh的用户是 pi,密码是raspberry $ ssh pi@192.168.0.106系统优化安装Vimsudo apt-get install vim开启root账号登录$ sudo vim /etc/ssh/s
  有时候 Mac 从睡眠状态恢复之后没有声音,这是 Mac OS X 系统的一个 Bug。这是因为 Mac OS X 的核心音频守护进程「coreaudiod」出了问题,虽然简单的重启电脑就能解决,但是如果此时开启了很多程序后者有其他情况不想重启电脑的话,可以按照下面的方法解决此问题。操作步骤:1、在 Mac 中打开活动监视器(在 Finder 的「应用程序」中搜索「活动监视器」可以找到)。2、在「活动监视器」窗口右上角的搜索框里输入「audio」,此时可以搜索到「coreaudiod」进程。3、选中「coreaudiod」进程,点击「活动监视器」窗口左上角的「退出进程」按钮,在弹出的对话框中点击「退出」。4、「coreaudiod」进程退出后会自动重启,这时声音就恢复了
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段1、尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED2、VARCHAR的长度只分配真正需要的空间3、使用枚举或整数代替字符串类型4、尽量使用TIMESTAMP而非DATETIME,5、单表不要有太多字段,建议在20以内6、避免使用NULL字段,很难查询优化且占用额外索引空间7、用整型来存IP索引1、索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描2、应尽量避免在WH
Docker是什么Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境    ,那么这两个东西有什么区别咧?Docker 与 Vagrant的区别从字面意思上来讲,这两个东西都可以实现虚拟化。Vagrant 是基于Virtualbox等虚拟机软件的实现的(Vagrant 本身并不提供虚拟技术,只是调用Virtualbox等提供的接口,进行虚拟机的管理),而Docker是基于LXC轻量级容器虚拟技术。一般我们用Vagrant来部署开发环境,Do
操作环境操作系统:CentOS7.2 内存:1GB CPU:2核Docker服务常用命令docker服务操作命令如下service docker start #启动服务 service docker stop  #停止服务 service docker restart #重启服务 service docker status   #查看服务状态启动Docker服务docker是一个CS模型,需要先启动服务端,直接执行 sudo service docker start 启动docker服务。sudo service dokcer start service docker status # 检查服务状态HelloWorld 初体验直接运行 sudo
  缘由由于个人经常在ubuntu和centos 系统中切换,习惯了以前的 ubuntu中 通过 /etc/init.d/xxx 进行软件服务控制。后来发现centos7中换了服务的控制方式:serviceservice关键字service httpd start 其实是启动了存放在/etc/init.d目录下的脚本。但是centos7的服务管理改规则了。CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下每一个服务以.service结
问题今天我在启动虚拟机过程 遇到莫名其妙的问题,启动不了。如下图。提示某个文件系统错误了。例如我的就是 /dev/mapper/vagrant--vg-root 。上面问题 可把我急坏了,以为虚拟机坏了。最后找到了解决方法,分享出来。解决方法在 如上截图的命令行 直接输入命令: fsck  /dev/mapper/vagrant--vg-root  。奇迹就发生了,居然好了。哈哈
问题最近把mac的操作系统升级到了最新版本发现了一个问题,通过共享文件夹的方式 修改的文件,无法立即同步到虚拟机中,大概需要30秒才能同步到共享文件夹。操作环境如下虚拟机:Virtualbox虚拟机操作系统:Ubuntu16.04虚拟机管理工具:Vagrant物理机:Mac  High Sierra  10.13.4现象截图正常截图修改文件之后的截图可以发现,当修改之后 通过终端查看文件发现 直接提示 error了并且文件的权限也不对了都变成?了 (如上图)苦恼每次修改一个文件都要等一会才能看到效果,非常急人,不是我们互联网人的追求效率的做法。那我们就要想办法解决。我知道肯定是升级系统造成的,但是不知道如何解决,就Googole了很久,终于找到了解决方法解决方法设置vagrant 目录同步的 :mount_options => ['actimeo=2'] 。修改完成如下config.vm.synced_folder "
  我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由伯乐在线持续更新。Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。环境管理管理 Python 版本和环境的工具p:非常简单的交互式 python 版本管理工具。官网pyenv:简单的 Python 版本管理工具。官网Vex:可以在虚拟环境中执行命令。官网virtualenv:创建独立 Python 环境的工具。官网virtualenvwrapper:virtualenv 的一组扩展。官网包管理管理包和依赖的工具。pip:Python 包和依赖关系管理工具。官网pi
开场白一转眼工作将近7个年头,时间过得好快哇。年少不懂事,上天惩罚我,婚也结了。不要暗恋哥,哥已是传说。恍恍惚惚过了这么多年,想整理下个人技能树,也提醒下自己我的技能树经常看到各种技能树,那我也来一发,我认为作为一个研发人员,不应该只会自己领域内的东西,不要让自己的路越走越窄。熟话说:技多不压身,有精力就多学点了。如下图(点击打开大图:我要看大图)个人实战过得系统工作这么多年,做过了不少东西,想到就列出来,其他零星小的就不说了个人博客地址:http://www.54php.cn 虚拟化Vagrant :http://www.54php.cn/default/26.html RBAC:http://www.54php.cn/default/42.htmlYii2打造后台+微信全栈图书商城: http://book.54php.cn/ Python3 + Flask构建微信小程序订餐系统:https://food.54php.cn/ 快速上手Linux 玩转典型
在企业内部一般都会有自己的DNS服务,主要为了企业方便管理,例如访问一些内部系统,控制一些网站不让访问,今天我们就说说如何打造私有的DNS服务系统基础配置Ubuntu14.04  内存:354M (使用vagrant 创建的虚拟机,快速打造自己开发环境 vagrant + virtualbox)    安装DNS服务sudo apt-get install bind9 bind9utils修改配置上篮三步简单设置  用 dr.local.com 为测试域名1.配置forward  编辑/etc/bind/named.conf.optionsforwarders {     114.114.114.114;     8.8.8.8; };2.配置需要解析的域名 编辑/etc/bind/named.con
需求如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头(有点贵)。如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头。你可能已经在PC上安装过了。我买的如图的这款本篇文章讲解的就是 在树莓派上使用USB摄像头检测摄像头$ ll /dev/video* crw-rw----+ 1 root video 81, 0 May 20 23:57 /dev/video0 $ lsusb Bus 001 Device 005: ID 248a:8367 Bus 001 Device 004: ID 1415:2000 Nam Tai E&E Products Ltd. or&
  需求希望每天早上上班之前可以自动语言报告下今天的天气情况准备树莓派3音响(前面已经配置了音响)环境python3获取天气信息本次我们使用的是墨迹天气,我住在浦东,就获取浦东的天气,浦东墨迹天气。源代码地址:https://github.com/apanly/pi3Robot/blob/master/jobs/tasks/weather/index.py文字转语音(TTS)我选择了一个快速可以实现,拿起来就可以用的一个Http Api。我从百度语音演示页面通过开发者工具发现这个api的,拱大家使用。http://tts.baidu.com/text2audio?idx=1&tex=你好,我是编程浪子&cuid=baidu_speech_demo&cod=2&lan=zh&ctp=1&pdt=1&spd=4&per=4&vol=5&pit=5然后根据mplayer 直接播放这个网址就可以啦定时任务使用linux的
在工作中需要对手机号码进行归属地查询,就在网上找了下解决方案,发现通过号段非常好判断。我将数据库文件放到了百度网盘,请有需要的朋友去下载。链接: https://pan.baidu.com/s/1ZEnymCpaCF7uG9z5uSbfdA 密码: 6w7f演示地址:http://m.54php.cn/demo/mobile
需求个人正在用Python写一个控制系统,技术选型是python3 + Flask + Mysql + Bootstrap。需要将这套系统直接部署到树莓派中.代码地址:https://github.com/apanly/pi3Robot 目录结构准备sudo mkdir -p /data/www sudo chown -R pi:pi /data/www mkdir -p /data/www/logs     .     |-- logs     |-- pi3Robot 代码存放位置     `-- pythonenv 虚拟环境python虚拟环境python 源$ mk
需求在树莓派上 安装Mysql 服务,并开启远程访问步骤安装 mysql server$ sudo apt-get install mysql-server我以为中间会让我提示输入 数据库root的密码,没想到一帆风顺,直接完成,我要疯了,密码到底是什么了。通过搜索发现,可以使用如下命令,空密码登录$ sudo mysql -u root设置root密码use mysql; update user set plugin='mysql_native_password' where user='root'; UPDATE user SET password=PASSWORD('你自己的密码') WHERE user='root'; flush
播放音乐说明使用树莓派3来播放音乐,将音响连接到树莓派的AV输出接口即可听到音乐介绍如何更改树莓派音频输出接口以及调节音量。准备条件树莓派33.5mm耳机或者音响一个步骤安装MPlayer, MPlayer 是一款开源的多媒体播放器,树莓派上安装mplayer即可播放音乐或者其他音频信息$ sudo apt-get update $ sudo apt-get install mplayer2如果遇到如下报错,请按照以下步骤处理The following packages have unmet dependencies:  mplayer2 : Depends: libdvdnav4 (>= 4.2.0+20120524) but it is not goi
树莓派是什么玩意Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI)   是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。  随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派。 自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。是不是非常心动,那就一起来摇滚吧入坑准备工作树莓派3代B型E14 树莓派散热片配件自带粘贴胶纯铜树莓派通用亚克力透明外壳树莓派读卡器 5V2A 电源适配器(家里有多余的手机充电线和充电头就不用买了)TF卡 建议至少32G,本人在JD购买的64G的如下,入坑基本费用 400 大元左右下载操作系统树莓派官方 Raspbian 系统下载:http://www.raspberrypi.org/download
根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术人员,大家可能听说过“滚动发布”和“蓝绿发布”等术语,但是很多人并不清楚这些术语背后的原理。本文试图总结当前主流的发布策略,每个的优劣,适用性,让开发人员特别是架构师对现代发布技术有一个更为清晰全面的认识,让大家能够根据自己的企业上下文,对发布策略做出正确的选型和实践。 一、单服务器组发布 先解释下单服务器组的概念,早先我们机器资源比较紧张,不像现在云计算和虚拟化(包括容器技术)这么发达,所以应用机器基本是预先静态分配好的(一般由运维负责分配),原来应用 A 住在这 n 台机器上,那么下次升级发布的应用 A 也住在这 n 台机器上,所以称为单服务器组发布方式。
下面是详细步骤:1. 首先确定进程的 ID ,可以使用 jps -v 或者 top 命令直接查看2. 查看该进程中哪个线程占用大量 CPU,执行 top -H -p [PID] 结果如下:可以发现编号为 350xx 的共有 9 个线程占用了 100% 的 CPU,好,接下来咱们随便取一个线程 ID ,假设我们想看编号为 35053 这个线程。首先将 35053 转成 16 进制是 88ED (可以用开源中国在线工具转换)3. 接下来我们将进程中的所有线程输出到一个文件中,执行:jstack [PID] > jstack.txt4. 在进程中查找对应的线程 ID,执行:cat jstack.txt | grep -i 88ED结果是:"HTTP Request From : /xxxx/blog/323432(120.27.143.239)" #266 daemon prio=5 os_prio=0 tid=0x00007fcda4146800 nid=0x88e
我们在做业务项目,客户端的输入总是无法控制,有各种各样的特殊字符,这些特殊字符就要借助ASCII码表才能判断,所以我做了一张图,方便查看为什么要搞个表出来,下面的字符串中,你看看你能否看的出来是什么特殊字符嘛(中间空白地方)20160807  1看不出来吧,让我们看看16进制是什么$ hexdump -C tmp.md 0000000 32 30 31 36 30 38 30 37 20 c2 a0 31 000000c三个特殊字符是 20,c2,a0 这只能对应ascii码表找了
有一次去图书馆看书,遇到一个刚毕业不久,在图书馆学习php,我就和他聊天,他期间问到一个问题“如何开发一个大型网站”,这个问题吓不倒我呀,我了解一些了,当时就和他连说带比划了一次,回家了我仔细又想了想,觉得还是写篇文章记录下任何网站都是从一个小网站 演变成 一个复杂的网站的(后面我们用成熟的网站表示大型网站)才开始一个网站不可能非常成熟的,都是随着用户量的增长,业务功能的不断扩展逐渐完善的第一:最初的网站架构 这个时候应该是最简单的架构了,应用程序,文件,数据库,web软件 都放在一台服务器上了,如下图(这就是我现在的基本架构了,嗯哼,就是小网站了)第二:应用程序,文件,数据库分离随着业务的发展,一台服务器已经满足不了性能要求了,所以这个时候将 应用程序,文件,数据库分别放在单独的服务器上第三:可以适当使用缓存改善网站性能提升硬件的配置同时,我们也可以使用软件做性能优化的,这里我们重点说的是数据库缓存,目前可以使用memcache/redis等软件第四:使用集群改善应用服务器性
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981