十一国庆，记录一次宝塔面板无法访问
十一出门，走的时候断电直接拉了电闸（不是x，回来之后，宝塔面板进不去了！ 打开网站，一切正常，都能进去。网站的redis，mysql都是正常的。后台bt命令也正常，只是唯独宝塔面板地址显示——127.0.0.1拒绝了我们的连接请求。。于是群里求助，群友说大概率是端口没开放，于是使用命令netstat -ntlp查看端口，没有8888端口！紧接着就去百度搜解决方法了。运行bt打开宝塔菜单，查看一下错误日志——22，显示以下错误： monkey.patch_all() File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 966, in patch_all _notify_patch(events.GeventWillPatchAllEvent(modules_to_patch, kwargs), _warnings) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 168, in _notify_patch notify_and_call_entry_points(event) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/events.py", line 111, in notify_and_call_entry_points for plugin in iter_entry_points(event.ENTRY_POINT_NAME): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 641, in <genexpr> for entry in dist.get_entry_map(group).values() File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2854, in get_entry_map self._get_metadata('entry_points.txt'), self File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2534, in parse_map for group, lines in data: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3190, in split_sections for line in yield_lines(s): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2394, in yield_lines for ss in strs: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2765, in _get_metadata for line in self.get_metadata_lines(name): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1417, in get_metadata_lines return yield_lines(self.get_metadata(name)) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1407, in get_metadata value = self._get(path) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1612, in _get return stream.read() OSError: [Errno 5] Input/output error Traceback (most recent call last): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2851, in get_entry_map ep_map = self._ep_map File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2813, in __getattr__ raise AttributeError(attr) AttributeError: _ep_map During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/www/server/panel/BT-Panel", line 11, in <module> monkey.patch_all() File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 966, in patch_all _notify_patch(events.GeventWillPatchAllEvent(modules_to_patch, kwargs), _warnings) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 168, in _notify_patch notify_and_call_entry_points(event) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/events.py", line 111, in notify_and_call_entry_points for plugin in iter_entry_points(event.ENTRY_POINT_NAME): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 641, in <genexpr> for entry in dist.get_entry_map(group).values() File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2854, in get_entry_map self._get_metadata('entry_points.txt'), self File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2534, in parse_map for group, lines in data: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3190, in split_sections for line in yield_lines(s): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2394, in yield_lines for ss in strs: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2765, in _get_metadata for line in self.get_metadata_lines(name): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1417, in get_metadata_lines return yield_lines(self.get_metadata(name)) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1407, in get_metadata value = self._get(path) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1612, in _get return stream.read() OSError: [Errno 5] Input/output error Traceback (most recent call last): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2851, in get_entry_map ep_map = self._ep_map File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2813, in __getattr__ raise AttributeError(attr) AttributeError: _ep_map During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/www/server/panel/BT-Panel", line 11, in <module> monkey.patch_all() File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 966, in patch_all _notify_patch(events.GeventWillPatchAllEvent(modules_to_patch, kwargs), _warnings) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/monkey.py", line 168, in _notify_patch notify_and_call_entry_points(event) File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/events.py", line 111, in notify_and_call_entry_points for plugin in iter_entry_points(event.ENTRY_POINT_NAME): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 641, in <genexpr> for entry in dist.get_entry_map(group).values() File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2854, in get_entry_map self._get_metadata('entry_points.txt'), self File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2534, in parse_map for group, lines in data: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3190, in split_sections for line in yield_lines(s): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2394, in yield_lines for ss in strs: File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2765, in _get_metadata for line in self.get_metadata_lines(name): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1417, in get_metadata_lines return yield_lines(self.get_metadata(name)) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1407, in get_metadata value = self._get(path) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1612, in _get return stream.read() OSError: [Errno 5] Input/output error不行啊，这么长的一片，完全看不懂，紧接着使用修复命令——16，显示以下错误：ERROR: Exception: Traceback (most recent call last): File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 173, in _main status = self.run(options, args) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/commands/list.py", line 179, in run self.output_package_listing(packages, options) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/commands/list.py", line 255, in output_package_listing data, header = format_for_columns(packages, options) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/commands/list.py", line 307, in format_for_columns row = [proj.raw_name, str(proj.version)] File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/metadata/base.py", line 163, in raw_name retu rn self.metadata.get("Name", self.canonical_name) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/metadata/pkg_resources.py", line 96, in metadata return get_metadata(self._dist) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_internal/utils/packaging.py", line 48, in get_metadata metadata = dist.get_metadata(metadata_name) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1420, in get_metadata value = self._get(path) File "/www/server/panel/pyenv/lib/python3.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1617, in _get return stream.read() OSError: [Errno 5] Input/output error这个短，看出来是在/www/server/panel/pyenv/lib/python3.7/路径下出了问题。在宝塔论坛 发帖求助 也没人搭理。只好强硬的来尝试修复了——直接重命名/www/server/panel/pyenv/文件夹使用官方安装命令覆盖安装宝塔面板，修复python环境在安装了108分钟之后，顺利的进入到了后台，这时查看netstat -ntlp，也能看到8888端口了，一切正常了！！爽啊啊啊啊~~
傻瓜式教程——玩客云搭博客——从宝塔到穿透（问题&后记）
这是第四部分，补充一下一些小问题。之前教程参考前三篇博文——傻瓜式教程——玩客云搭博客——从宝塔到穿透（上）傻瓜式教程——玩客云搭博客——从宝塔到穿透（中）傻瓜式教程——玩客云搭博客——从宝塔到穿透（下）樱花frp设置参考之前说樱花frp开机自启没找到方法，但是可以使用任务计划在周期性是他自启。据群友说周期性反复启动会被检测封号，请酌情考虑是否周期性自启以及自启周期在宝塔任务计划面板，新建任务计划——任务类型 shell脚本任务名称 自填执行周期 自选脚本内容 ——#!/bin/bash cd /root str=$"/n" sstr=$(echo -e $str) nohup ./frpc -f xxxxxxxxxxxxxxxxxxxxxxx & echo "$sstr"因为樱花frp的隧道是http以及https是分开的隧道，因此我们申请两个隧道，分别关联http以及https，同时上述任务计划脚本也需要建立两个，然后在宝塔网站管理，开启强制SSL，即可使用http访问站点并强制跳转到https。日后的相关问题都会更新在这里
傻瓜式教程——玩客云搭博客——从宝塔到穿透（下）
前言{cat_tips_success color=""}上一期写着写着，字就变多了，所以分成三个部分，这部分主要的在U盘上安装宝塔。{/cat_tips_success}刷机（续）{cat_tips_error color=""}刷机有风险，操作需谨慎！！！因刷机导致的问题本人概不负责。{/cat_tips_error}宝塔设置首次进入宝塔时，需要安装环境这里我们选择——Nginx（这里不推荐Apache）{cat_hide}服务器Nginxphp7.0/7.2mysql5.5/5.6phpadmin4.4{/cat_hide}之后慢慢等待安装即可。安装结束后，进入宝塔左侧软件商店——已安装，检测是否全部顺利安装，若缺失，即安装失败，重新在软件仓库安装即可。安装博客程序这里大家可以自选自己的博客，或者是其他的web程序。使用文件管理后台安装好后，，，，，，我想大家都会，就不啰嗦了。检查博客在绑定本地80接口后，进入本地ip，查看是否顺利。能顺利访问即可。樱花frp注册樱花frp在本地检查无误后，进入樱花frp官网，注册账号。若使用ssl方式连接国内节点，需开放宝塔443接口，以及一元的樱花frp实名认证。创建隧道创建一条隧道创建成功后，可得到图中红字启动参数，记下来。frpc客户端下载{cat_hide}注册完成后，在官网的软件下载处，下载Linux (arm_garbage){cat_download name="樱花frpc" url="https://getfrp.sh/d/frpc_linux_arm_garbage" password=""}将下载的文件更名为frpc，登录Winscp，放在root目录下，并右键给予0755权限在ssh中，输入命令./frpc -f bsjfgkdfkjkdsjsdkfsdkjgfdgkfjdgsk其中的-f bsjfgkdfkjkdsjsdkfsdkjgfdgkfjdgsk为我们上一步骤中的红字启动参数{/cat_hide}可见隧道已经成功连同。frp自启动这个本喵没成功，部分参考代码放在这里，有成功的感谢指教。{cat_hide}#!/bin/bash cd /root str=$"/n" sstr=$(echo -e $str) nohup ./frpc -f bsjfgkdfkjkdsjsdkfsdkjgfdgkfjdgsk & echo "$sstr"{/cat_hide}教程结束
傻瓜式教程——玩客云搭博客——从宝塔到穿透（中）
前言{cat_tips_user color="#66ccff"}上一期写着写着，字就变多了，所以分成三个部分，这部分主要的在U盘上安装宝塔。{/cat_tips_user}刷机（续）{cat_tips_error color=""}刷机有风险，操作需谨慎！！！因刷机导致的问题本人概不负责。{/cat_tips_error}U盘准备因为玩客云emmc容量仅为6.5G，为了日后方便，我们将宝塔面板装入U盘（硬盘同理）。若不打算装U盘，可跳过此步骤。格式化U盘{cat_hide}将U盘插入靠近网线接口的USB插孔，进入putty使用命令fdisk -l查看硬盘信息。类似/dev/sda，/dev/vda，/dev/hda这样的。sd是scsi口硬盘，sda是第一块，sdb是第二块。hd是IDE口硬盘，vd是虚拟硬盘.找到我们的U盘，先进行分区使用命令fdisk -S 56 /dev/sda对数据盘进行分区。根据提示，依次输入n，p，1，两次回车，wq，分区就开始了，很快就会完成。分完区以后，/dev/sda就会分出新区/dev/sda1再次使用fdisk -l命令可以看到，新的分区sda1已经建立完成了。 使用mkfs.ext4 /dev/sda1命令对新分区进行格式化，格式化的时间根据硬盘大小有所不同。{/cat_hide}创建U盘自启动在根目录下创建www文件夹。挂载U盘命令mount /dev/sda1 /www{cat_tips_success color=""}同样的卸载U盘命令是—— umount /dev/sda1 {/cat_tips_success}使用命令df-h可查看U盘挂载状况。在/etc/rc.local文件里添加（exit 0上面一行）：mount /dev/sda1 /www这里不推荐修改fstab，修改失误会导致开机失败，前功尽弃。使用reboot命令重启系统（玩客云armbian）。再次进入shh后，使用命令df -h查看时候开机自动挂载。启动Winscp，查看根目录下是否成功挂载www目录。刷入宝塔{cat_hide}进入 宝塔官网 ，找到镜像安装地址。连接ssh。创建一个新的窗口screen -S 111{cat_tips_success color=""}若电脑中途断网或关机，可使用命令重连窗口—— screen -x 111 {/cat_tips_success}运行宝塔7.6的安装脚本（来自宝塔官网）wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh{/cat_hide}等待即可。。。。漫长的等待过后，我们会得到宝塔面板的地址，账号，密码在浏览器输入地址后，进入宝塔后台。
博客迁入至新家——玩客云搭设博客，及这周的艰辛记录
之前一直白嫖大佬的服务器，但是备份一直都是一件麻烦事。万一数据丢失那可就是超级心痛了。于是，手上的一台玩客云就成了我的目标。 首先决定刷机时，他已经是被刷成电视盒的形态。但是有谁会去经常看电视呢，性能4H1G的S805芯片，做博客岂不正合适。一开始，我并没有直接去刷宝塔搭设博客环境，而是想用它来搭设mc的服务器。人不用多3-5人就可以，但是出乎我的预料，折腾了整整三天，始终无法达成目标。于是草草的记录了一下刷mc的过程。感谢大毛的教学，无论是视频还是公众号的教程，也感谢他创建的Q群的好心的小伙伴们的耐心帮助，MC服务器也总算是搭建起来了。但是！有个超级难过的地方，那就是爆内存了，我开着小船，吹着风，划着水，然后被踢出服务器了。我进后台一看，说我小船划得太快？这样就没办法了，这还是纯净，没装mod呢。于是毅然决然放弃，装宝塔！宝塔也是超级一波三折。首先下载半天进度不住报错。一开始我以为是包的问题，后来才想起是长城宽带的问题。但是玩客云插网线，没办法走梯子（非智能路由）或者是流量。也更换过hosts，依旧没效果。然后折腾了半天想到了走手机流量做无线桥接，完美 。但是新问题来了，运行ssh时，经常发发生间歇性断网，后来设置成了屏幕常亮（被限制后台了）就好了。还有我装了半天宝塔5.9.2，装了Apache环境，结果穿透的时候报错，网上说是Apache的问题，于是换nginx。宝塔5.9.2的nginx版本只到1.15，arm装不上，凉凉。然后如法炮制装宝塔7.6，也是装了好久，报错。群里大佬提醒我换个底包，因为7.6较新，我就换了一个5.88的armbian，顺利装好——到mysql装到99%的时候，emmc的6.4G容量爆了！woc，这怎么办，只能迁移到U盘。大毛的代码经常有问题，人还常年不在线问不到，于是百度搜到做个软链，投到/www，可是新的问题又来了，这样的话宝塔不能自启。在慕竹大佬的建议下，迁移到了U盘根目录，删掉了软链，但是宝塔的启动顺序还是不能确定。最后参考百度，在/etc/rc.local下，添加/etc/init.d/bt start使问题得到了解决。然后就是安装网站环境，对于不能自启的bug，同样在/etc/rc.local下添加相应的指令。对于我打算在自启时，运行樱花frp的计划失败了，命令总是不对，在Q群白糖的建议下，选择了一段时间启动一次的方式。就记录这么多了。