记一个PPTP搭建排障

Server通过pptpd搭建pptp服务 构建完成后client建联失败

现象1:Server拒绝client的lcp协商

这种情况先在server抓包,server会主动回答一个request-reject,这个reject包里面会携带拒绝的原因,根据reject包内携带的原因来判断为什么server拒绝了这个协商,我遇到的情况是,client携带了一个cbcp的标记,这个是微软的一个callback标记,在适配器里面把lcp拓展关了就恢复

现象2:Server接收client的协商,回复了ack,但是依旧建联失败

一定要看看client所在的本地网络有没有防火墙…还要看看本地网络拓扑层数 这次的场景 client是本地的一台pc,一直协商失败,在client上抓包发现没收到server的ack,但是server上又明确抓到回包了,最后想起来本地的网关刷了openwtr…. 把gre协议放开后测试还是不行

遂在网关上面抓包,openwrt能装tcpdump 抓完发现 由于gre不带port 报文回到了gw后就没法往下转发到client了 配了条静态路由后大功告成

总结:

多抓包多抓包多抓包

还有永远不要无条件信任一个终端网关…..

通过OneInStack快速部署Web运行环境

在生产环境中, 尽量不要使用OneInStack之类的一键安装脚本, 由于镜像/脚本存在被第三方恶意篡改的不确定性,对生产环境可能造成潜在的安全风险

如果你只是希望快速搭建一个可用的Web环境, 欢迎查看这篇文章

如何快速搭建Web环境 – Zoisite’s Blog

什么是OneInStack

这里直接贴上项目官方的介绍

脚本介绍

此脚本使用shell编写,用于快速部署LEMP/LAMP/LNMP/LNMPA/LTMP(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP、JAVA)环境,适用于64位的RHEL 7、8、9(包括CentOS、RedHat、AlmaLinux、Rocky)、Debian 9、10、11、12、Ubuntu 16、18、20、22和Fedora 27+。

脚本特点:

  • 持续更新,提供交互式安装和自动安装
  • 源码编译安装,采用最新稳定版本,并从官方站点下载
  • 提供多重安全优化
  • 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.11、MariaDB-10.5、MariaDB-10.4、MariaDB-5.5、Percona-8.0、Percona-5.7、Percona-5.6、Percona-5.5、PostgreSQL、MongoDB)
  • 提供多个PHP版本(PHP-8.3、PHP-8.2、PHP-8.1、PHP-8.0、PHP-7.4、PHP-7.3、PHP-7.2、PHP-7.1、PHP-7.0、PHP-5.6、PHP-5.5、PHP-5.4、PHP-5.3)
  • 提供Nginx、Tengine、OpenResty、Caddy、Apache和ngx_lua_waf
  • 提供多个Tomcat版本(Tomcat-10、Tomcat-9、Tomcat-8、Tomcat-7)
  • 提供多个JDK版本(OpenJDK-8、OpenJDK-11、OpenJDK-17)
  • 根据需求安装PHP缓存加速器(ZendOPcache、xcache、apcu、eAccelerator)和PHP扩展,包括ZendGuardLoader、ionCube、SourceGuardian、imagick、gmagick、fileinfo、imap、ldap、calendar、phalcon、yaf、yar、redis、memcached、memcache、mongodb、swoole、xdebug
  • 可选安装Nodejs、Pureftpd、phpMyAdmin
  • 可选安装memcached、redis
  • 使用Jemalloc优化MySQL、Nginx
  • 提供添加虚拟主机脚本,包括Let’s Encrypt SSL证书
  • 提供Nginx/Tengine/OpenResty/Apache/Tomcat、MySQL/MariaDB/Percona、PHP、Redis、Memcached、phpMyAdmin升级脚本
  • 提供本地、远程(服务器间rsync)、阿里云OSS、腾讯云COS、又拍云、七牛云、亚马逊S3、Google Drive和Dropbox备份脚本

综上所诉, 这是一个以快速构建Web环境为目标的一键部署脚本, 个人项目还是挺推荐使用的, 毕竟很省事

需要注意的是, 省事带来的是不确定性, 生产环境中还是不建议使用诸如此类的一键部署脚本, 安装流程的不确定性, 镜像源与代码是否存在污染风险,都没法掌握(当然, 就算是官方Release也是有可能被污染的, 但是生产环境, 能谨慎一点算一点)

为什么要使用它

当我们着手部署一个Web环境时,安装各种前置依赖和中间件往往是一项复杂且繁琐的任务。以一个基本的前后端分离项目为例,我们通常需要执行以下步骤:

  • 安装反向代理服务器(如Nginx、Apache、Tengine或Caddy)
  • 配置HTTPS
  • 安装后端运行环境(例如JDK、PHP或Node.js)
  • 安装数据库管理系统

显而易见,所需完成的任务相当繁多。

是否有一种简便的方法能够帮助我们快速实现上述所有需求的安装与配置呢?答案是肯定的,实际上存在不少这样的工具。

比如,经典的LNMP一键配置脚本就广为人知。然而,今天我们想介绍的是OneinStack——一款更为新颖的一键式Web运行环境安装脚本。相比LNMP,OneinStack提供了更高的灵活性,允许用户根据自身需求自定义组件组合。

此外,它还具备全自动的SSL证书管理功能,相较于手动逐一安装各个组件,使用OneinStack无疑大幅节省了时间。

这里也贴上OneinStack的Github链接, 有兴趣的朋友可以看看

GitHub – oneinstack/oneinstack: OneinStack – A PHP/JAVA Deployment Tool