vultr服务器网速问题排查和机房选择

vultr网速问题排查

公司用电信百兆,使用Vultr的日本服务器,延迟300多ms,丢包率50%,网页直接打不开,之前都能秒开Youtube1080分辨率视频,现在开个google搜索都要半天,然后就去排查问题。

先是测试vultr 服务器自身宽带有没有缺斤少两,下载speedtest工具测试,发现服务器自身网速快的飞起,下载有82M每秒。

1
2
3
4
5
6
7
8
9
10
11
12
13
git clone https://github.com/sivel/speedtest-cli.git
cd speedtest-cli/
python speedtest.py
[root@vultr speedtest-cli]# python speedtest.py
Retrieving speedtest.net configuration...
Testing from Choopa, LLC (167.179.101.219)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by i3D.net (Tokyo) [12.49 km]: 1.004 ms
Testing download speed................................................................................
Download: 825.28 Mbit/s
Testing upload speed......................................................................................................
Upload: 504.59 Mbit/s

那么只可能是本地网络到服务器的网络通道出了问题:


如何零成本搭建一个远程随时可用的服务器

如何零成本搭建一个远程随时可用的服务器

最近组装了一台2手电脑,放在家里,有时希望能在外面通过ssh 连进家里的服务器

家庭办理的是电信宽带,100M光纤入户,打了10000号申请静态公网IP,反馈说不行,静态公网IP需要申请企业专线套餐,目前网络状态是动态公网IP(隔一段时间,IP就会进行变更)

所以思路是,在服务器上,写一段定时脚本,定时上报自己的IP地址到DNS服务商,DNS服务商更新DNS中的ip,然后通过域名进行访问。

不过首先要解决的是,如何从通过路由器定位到机器


IntelliJ IDEA 插件,提高生产效率

IntelliJ IDEA 高效率插件

IntelliJ 在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、CVS 整合、代码审查、 创新的 GUI 设计等方面的功能可以说是超常的

分享一些 java开发常用 IntelliJ 插件

1. Alibaba Java Coding Guidelines(P3C)

项目地址
https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
https://github.com/alibaba/p3c/tree/master/idea-plugin

阿里巴巴出品的 java 代码规范插件,可以扫描整个项目,找到不规范的地方,并且大部分可以自动修复。

具体介绍和安装 见 https://github.com/alibaba/p3c/tree/master/idea-plugin

2.FindBugs-IDEA

项目地址
https://plugins.jetbrains.com/plugin/3847-findbugs-idea

检测代码中可能的 bug 及不规范的位置,检测的模式相比 p3c 更多,写完代码后检测下,避免低级 bug,强烈建议用一下,一不小心就发现很多老代码的 bug。

3. GsonFormat

地址
https://plugins.jetbrains.com/plugin/7654-gsonformat

一键根据 json 文本生成 java 类,非常方便。

4. Maven Helper

地址
https://plugins.jetbrains.com/plugin/7179-maven-helper

一键查看 maven 依赖,查看冲突的依赖,一键进行 exclude 依赖,对于大型项目非常方便

5. VisualVM Launcher

地址
https://plugins.jetbrains.com/plugin/7115-visualvm-launcher

运行 java 程序的时候启动 visualvm,方便查看 jvm 的情况 比如堆内存大小的分配,某个对象占用了多大的内存,jvm 调优必备工具。

6.Rainbow Brackets

彩虹颜色的括号,看着很舒服,敲代码效率变高。

7.Free Mybatis plugin

Mybatis的mapper接口和xml配置文件之间相互导航.

8.JRebel

本地服务器起来后,修改了类或者配置文件热加载,不用重启服务器.(此插件为收费插件,下面附破解教程)

https://blog.csdn.net/qq_27093465/article/details/79148498

自动化部署 - 定制化RPM包构建

linux 上一些软件包的安装,往往需要很多手工介入的安装步骤,不利于进行大规模集群部署,而且免不了对一些软件需要定制化改造的需求,需要源码安装。如果需要一台台地去编译安装,那么运维就不用出机房了

文章以mysql打包构建为例,实现 基于源码构建定制化rpm包 和基于 二进制安装包构建rpm包 两种方式的的打包

打包好了,将该rpm包发布到构建的本地yum源,集群中所有机器一个yum install 命令就可以搞定了。如何在本地搭建yum源,可以见上一篇文章:自动化部署 - 构建YUM本地源


自动化部署 - 构建YUM本地源

yum 本地源 构建

学会打rpm包后(见如何利用rpm-maven-plugin打包前后端项目,那么接着就是在本地集群构建yum源了

文章包含两个部分:一是自动脚本构建 yum源,二是分发yum源配置,使得整个集群yum安装从本地源拉取

相比较而言,本地YUM源服务器最大优点在局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件升级和安装

构建本地yum源适用于以下场景:

  • 客户现场没有网络环境
  • 外网环境不佳
  • 减轻带宽压力
  • 本地化自动部署

本地源配置的三种方式

  • 一是直接使用CentOS光盘作为本地yum源,优点是简单便捷,缺点是光盘软件包可能不完整(centos 7 Everything 总共才6.57G);
  • 二是同步CentOS官方源到本地(相当于创建了一个公共镜像),优点是最靠谱,缺点是占空间费流量;
  • 三是创建完全自定义的本地源,优点是灵活性最大,缺点是只是作为其他源的补充。

因为有本地化部署的需求,且客户现场没有网络环境,所以稍微了解和构建下 CentOS光盘和 自定义本地源两种方式,最后通过构建脚本自动构建yum本地源,且通过分发脚本将yum源配置同步到集群的各台机器


自动化部署 - 集群配置SSH免密自动化脚本

原理 从服务器A登录到服务器B,借用网上的一张图片


图片来源

具体的操作:
A上面生成私钥公钥对,拷贝公钥内容追加写入到B的授权文件/root/.ssh/authorized_keys

上面的是单机操作,如果应对到几台/几十台的集群配置,手动去配置,那么需要配置n*3次,这酸爽,手动表情[哭笑不得]

以下通过一个shell脚本,自动生成各台机器的id_rsa密钥对,并将所有机器的公钥写入到文件中,再自动将该文件内容分发到所有服务器并且将文件内容追加写入到authorized_keys文件


自动化部署 - 如何利用rpm-maven-plugin打包前后端项目

Maven打包成RPM

RPM全称是 Red Hat Package Manager(Red Hat包管理器)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。

在devops链条上,常见的部署方式是通过持续集成工具如jenkins/CI 构建和发布jar包到服务端制定目录。不过随着越来越多的应用趋向于paas 平台,本地化自动部署的需求越来越多,在软件包的安装过程中各种自动控制命令的集成也越来越复杂,jenkins等部署方式已经无法满足需求,这时候将软件包和集成脚本一起打包成rpm包的形式,也是一种另外的思路。对于最终用户来说,使用 RPM所提供的功能来维护系统是比较容易和轻松的。安装、卸载和升级RPM软件包只需一条命令就能搞定。
后续还可以构建yum本地源,通过ambari等其他集成工具,进行对软件包的安装、管理、监控、卸载、升级全生命周期的管控

利用rpm-maven-plugin插件实现rpm构建,以便于RPM软件仓库管理。
包含四个部分:

  • 基本单项目 打包成rpm
  • 多module 项目打包成rpm
  • 纯前端项目 打包成rpm
  • rpm script 应用-通过自动创建软连接实现rpm包自动升级

备注:

rpm-maven-plugin 需要在linux 机器上才能正常运行,运行机器需要

1
yum install rpm-build

Shadowsocks客户端安装使用指南

年少无知,现在下架

SS客户端安装使用指南

要用来搜索英文资料信息,可google、wikipedia访问不了?工作上需要和客户/合作搭档交流对接,可facebook、LINK、telgram使用不了?英文类技术问题需要查解决方案,可stackoverflow、github访问不了?

工欲善其事,必先利其器。对于很多工作比如从事外贸、国际外包、技术协作等等,已经离不开和各国各地的合作伙伴、客户或者搭档在互联网开展工作精诚合作,可GFW会成为工作开展中的第一道门槛(不可置否GFW对GJ的重大贡献,但确实会影响到正常的日常工作使用)

2018新版(简称SS) 安装使用指南。随着操作系统的更新和相关APP的下架,以前很多最优软件发生了变更,现在介绍下在Windows、MacOs、IOS、Android、Linux 系统下,shadowsocks 客户端的安装配置教程及使用指南。本文所选用的ss客户端优先选用免费开源或口碑推荐(开源版本是指源码公开,可供大家审查和二次开发,所以不存在后门、木马病毒等)

两个章节对应两个步骤:

响应ZC,下架文章

ssh 免密登陆

ssh 免密登陆

原理:

用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。

e.g. ServerA 免密登陆 ServerB

在ServerA,ssh-keygen -t rsa ,三次回车生成id_rsa,在~/.ssh/目录下会生成id_rsa(私钥) id_rsa.pub(公钥)这两个文件;然后将公钥拷贝到

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub root@ServerB:~/.ssh/authorized_keys

登陆ServerB,变更~/.ssh/authorized_keys 权限

chmod 600 ~/.ssh/authorized_keys

这样就可以在ServerA免密登陆ServerB了。authorized_keys可以放多个公钥,那时就不能用scp命令了。

出海捕鱼,翻过那山看世界,ss部署指南

Shadowsocks 部署指南

自制梯子的思路是先购买国外机房的一个虚拟服务器,通过一个服务做转发代理,比如在墙内访问google,实际会转发到国外的虚拟服务器上,通过国外机器的服务转发访问。最后再开启tcp单边加速算法,让你的代理速度飞起来

比较专业的说法是,引用wikipedia:

Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。

在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网

下文包含以下几个部分:

  1. 购买vps
  2. 安装服务端ssserver
  3. 配置服务端ssserver
  4. 服务器防火墙设置
  5. 客户端(windows 和macosx)下载安装配置
  6. 开启BBR加速算法,油管4k不是梦

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×