Socat一键安装脚本可转发TCP和UDP流量

本文转载自 https://www.moerats.com/archives/621/

说明:一般用海外服务器的都会遇到线路爆炸,网络不好的情况,导致我们使用效果很差,这时候就可以用端口转发来改善这种情况,常见的转发有rinetdHaproxyiptablessocat,前面2种只能转发TCP,后面TCP/UDP都可以转发,如果用来玩游戏的话就需要转发UDP了,博主就写了个Socat一键安装脚本

安装

系统要求:支持CentOS 6+ 、Debian 7+Ubuntu 14+
脚本说明:脚本默认开启UDPTCP转发,带开机自启功能,且一次只能转发单个端口,如果想转发多个端口请重复运行本脚本。
提示:该脚本在Vultr各个系统均测试通过,包括最新的Ubuntu 18.04,如果有其它问题可以留言。

使用root运行以下命令:

wget https://www.moerats.com/usr/shell/socat.sh && bash socat.sh

按要求输入以下信息:

#如果你要用本地服务器的3333端口转发IP为1.1.1.1服务器的6666端口,那就依次填入指定参数。
请输入本地端口:3333
请输入远程端口:6666
请输入远程IP:1.1.1.1

输入后直到配置完成。

解决”ERROR: The certificate of `github.com’ is not trusted.”问题

今天早上有在GITHUB下载一个脚本到VPS中的时候有出现"ERROR: The certificate of `github.com’ is not trusted."的错误提示。应该意思是这个证书可能不被信任,反正就这个提示,正式存在的,我换了其他有HTTPS网址也无法WGET下载,应该是这个问题。

解决办法:

--no-check-certificate

我们可以直接在wget后面加上脚本即可。

或者我们可以:

apt-get install ca-certificates -y #Debian/Ubuntu

yum install ca-certificates -y  #CentOS

安装完毕之后应该是可以不用上面脚本直接可以wget。

解决腾讯云轻量服务器国内机器无法使用Github的方法

最近鹅厂搞了一波轻量应用服务器无忧计划,还没有了解的朋友请看传送门:轻量无忧计划 Lighthouse Care,想必买到的朋友们都用起来了吧,本人买了一年准备用在生产之中结果上不去GitHub无法拉取库,原来是Github在国内访问速度慢的问题原因有很多,但最直接和最主要的原因是GitHub的分发加速网络的域名遭到dns污染,导致国内机器连不上仓库,安装部分服务受到影响。

解决思路:修改Host

通过手动获取github能正常访问的地址,然后修改系统hosts文件,绕过国内dns解析,直接访问GitHub的CDN节点,从而达到加速的目的。

解决办法:

打开https://www.ipaddress.com/

查询以下链接的DNS解析地址:

1. github.com
2. assets-cdn.github.com
3. github.global.ssl.fastly.net
4. codeload.github.com
5.raw.githubusercontent.com

如图所示:

然后修改本地hosts文件:

/etc/hosts

将上面的ip解析手动加入文件:

192.30.253.112 github.com
199.232.28.133 raw.githubusercontent.com

正常来说,加入上面两个github地址即可。

这样就可以正常使用生产啦!

Cloudflare自动开盾

Cloudflare的I”M UNDER ATTACK模式也就是传统的五秒盾在某种程度上可以有效的缓解CC攻击,但是如果一直开着会影响用户的使用体验,所以说一个CF自动开盾脚本是很有必要的,我这里使用的Cloudflare代理商笨牛所提供的脚本,如果不想用笨牛网的方法也可以去Github找一个脚本。

一、首选打开笨牛官网,登陆自己的CF账号,在主面板点击自动开盾

二、进入页面后下载Shell脚本,并且复制好他给你的Token

三、修改脚本配置,填写TOKEN,选择检测模式,和开盾持久时间

这里我选择的是CPU如果五秒占用九十以上开启盾,开启时间为6min

四、最后一步,SSH到你的服务器,chmod+x tz.sh赋权,再设置个定时任务1分钟执行一次,或者用宝塔面板的定时任务,像我这样

PS:昨天由于用了这个脚本后又用了GITHUB上一个开验证码的脚本,两个脚本一起跑,导致服务器小鸡处理不过来对CF的api请求,服务器最高负载到了20多,我还以为有人在打我,

查看日志后发现日志竟然10M!! 我干,连忙下载下来分析了一波,顺便把ip拉入黑名单来着,结果发现,访问ip除了Cloudflare就是我自家ip

小丑竟是我自己

162.158.179.156 - - [24/Jan/2021:17:31:20 +0800] "GET /api/v1/admin/server/group/fetch HTTP/1.1" 200 395 "https://u-vps.com/19?cf_chl_captcha_tk=c88bdd8eebe02129632afcec2fddb1db619222d7-1611480649-0-AfFBYInAsDbh5dQrUePmxfpnzwPpwkEGm-o0CppKhXyAgrjPdUs37nPdfmNxmLnihlpgK43UF_UW_8nhz-rNnd_Ha8nId_etRCUe6HQmmcUCV4FNI728nNzXKNiKdrkDdRlh79xfOTNyiFoA9LiNv04ppRukI0IW90u2weTN2TQVBvgbh0_iIJiGIi61JydnkQnAtU3VeXJx1ZRRpYi_Ztb7GM4PGZYBMwLqr011aJAYvazC4e8MLaSohldMgpTOTtTmDoNuARfENr8OtAcU3n_5aQzgrp5ykD1QNSDHNPDEHwneqR1FFqr6qiIsTMuAh9R_ezuaKSp4znZnn0Fz37zo1OaZY7PCoClTFhe0IzO3SSfO9qqvn-j9HsCfwM00Z-G7T_6ipihPx2vKAZ30gqfxRb9jzEnE8UfjRuZxfL7x9oPS1kaROkLp3o7iUsDl4nLxdOv28MlnB_-A1GRIdfTH4hgjrq2KoQ1_v-kRvBEP8fZsuez_0PrFlPREPkrQW9eV1_1pD7dKvhb-yOpheaj9GqWS42dOtRQa5FYWP5uo8zd-2YmH7di8JFkAOAuobUQHVmrvnnWP4LHv3cnN9Gc" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"

支付成功显示未支付解决方案

昨晚突然收到客户私信反馈,说是付款成功后却显示未付款

这类问题通常是服务器异步通知(notify_url)、页面跳转通知(return_url)出错

遇到这种情况首先查看服务器是否出问题,一般服务器出问题在支付接口点补单或再次尝试即可成功,但是补单后仍显示未付款,应该是服务端配置出问题了

我网站所使用的接口为基于易支付开发的章鱼支付,查看官网开发文档

其中请求方式为GET指令,经查看后我使用的服务端模板异步通知为POST指令,修改HTTP请求指令

理论上来讲,POST的请求请求参数在HTTP包的包体中,比GET请求的数据会附在URL之后更安全,但是不知开发者咋想的,可能是认为支付成功返回通知没那么重要了?前面的统一POST后面突然来了个GET搞得我措手不及,真是神经病

如何你也是用的Cloudflare 请把支付请求的路径列到防火墙规则里面

图中有一个错误,URL路径后的运算符应该是包含而不是等于