分类目录归档:云乞讨

制作获取当前设备公网地址IP的API接口,基于FLASK实现的栗子 2021-3-27

需求描述
有很多网站提供查询自己公网IP的服务,但是鉴于部分网络的隔离,部分服务的异常,还是自己弄一个比较稳定,于是有了下面的基于Flask的API

购买了一台便宜的云服务器,不管国内还是海外的
默认安装了ubuntu系统,环境需求为Python3和 Flask框架。FLASK框架很简单小巧,适合这个场景。

安装python3-pip 命令

apt-get install python3-pip 

安装flask 命令

pip3 install flask

程序源代码如下,将如下的源代码写入程序run_flask_api.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import flask

app = flask.Flask(__name__)

@app.route('/ip')
def index():
    ip_address = flask.request.remote_addr + '\n'
    return ip_address

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=18039)

运行程序run_flask_api.py

ubuntu@server:~$ python3 ./run_flask_api.py
 * Serving Flask app "run_flask_api" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:18039/ (Press CTRL+C to quit)

在其他服务器GET方法测试程序API

client@serverX:~$ curl http://12.33.236.181:18039/ip
45.257.14.277
client@serverX:~$ 

备注
1. 以上文章中出现的IP,为了安全,已全部修改到不存在的IP
2. 我自己只需要对IPv6的返回,有需要的可以增加IPv6的场景

Donate
云乞讨

谷歌浏览器 火狐浏览器 使用SwitchyOmega插件教程 2021-3-2

谷歌浏览器 火狐浏览器 使用SwitchyOmega插件教程 2021-3-2

需求描述
在浏览器上实现更改自己的IP,用于访问限制单IP频率的网站,或限制需要特定访客来源IP的网站

安装浏览器插件switchyomega步骤
打开 谷歌浏览器
打开 https://chrome.google.com/webstore/category/extensions?hl=en-US
搜索 switchyomega -> 结果中作者为FelisCatus即为正确的
点击 Add to Chrome(安装到谷歌浏览器)
点击 跳过教程
点击 switchyomega插件图标
点击 Options(选项)
点击 New Profile(新增配置) -> 自定义一个配置名称(如 Socks5Proxy)
点击 Protocol(协议) -> 选择SOCKS5 -> 添加SOCKS5-IP -> 添加SOCKS5-PORT
点击 Apply Changes(应用)

SwitchyOmegaSetting
SwitchyOmegaSetting

点击 switchyomega -> 选用刚刚添加的名称为Socks5Proxy的SOCKS5代理
打开 一个检测IP地址的网站,看页面显示的IP是否变为自定义的SOCKS5的IP,确认选用SOCKS5代理有没有生效
// 网络上有很多免费的SOCKS5代理的
// 网络上公开的SOCKS5代理一般不怎么稳定,不安全,临时用可以,不能用于传递明文数据

Donate
云乞讨

Debian 10系统上编译安装Redis 2021-2-15

需求描述
下载最新的Redis稳定版本,编译安装Redis

配置安装Redis最新稳定版本,优先参考https://redis.io/topics/quickstart
本次安装到的版本为Redis 6.0.10 2021-2-15

root@server:~# mkdir -p /root/src
root@server:~# cd /root/src
root@server:~# wget http://download.redis.io/redis-stable.tar.gz
root@server:~# tar xvzf redis-stable.tar.gz
root@server:~# cd redis-stable
root@server:~# make
root@server:~# make install
root@server:~# which redis-cli
/usr/local/bin/redis-cli
root@server:~# 
root@server:~# which redis-server
/usr/local/bin/redis-server
root@server:~# cp ./redis.conf /etc/redis.conf

修改/etc/redis.conf配置文件 配置Redis的监听和一个可靠的随机密码

bind 127.0.0.1
requirepass B230dddeAE678eDb

服务器内存资源不充足的情况下,建议设置

# The above configuration tells Redis to remove any key using the LRU algorithm when the max memory of 256mb is reached.
maxmemory 256mb
maxmemory-policy allkeys-lru

启动redis服务端

root@server:~# /usr/local/bin/redis-server /etc/redis.conf

测试redis是否正常启动

root@server:~# /usr/local/bin/redis-cli -a B230dddeAE678eDb ping
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
PONG
root@server:~# 
Donate
云乞讨

关闭Windows7上的Flash的广告及更新问题 2021-12-22

需求描述
Flash已经不再更新,由于大陆地区很多老旧网站还依赖Flash,不得已电脑上安装了大陆特供版本的Flash,频频跳出广告
关闭Flash广告的操作

1. 打开任务管理器,关闭Flash相关进程
2. 打开services.msc,关闭Flash的服务,并设置为禁用
3. 打开C:\Windows\System32\Macromed\Flash的文件夹,删除FlashHelperService.exe,新建TXT,重命名为FlashHelperService.exe,属性只读
4. 修改C:\Windows\System32\drivers\etc\hosts,增加行127.0.0.1 flash.cn

Donate
云乞讨

Python3 处理域名解析到A记录 域名解析到CNAME记录的问题 2021-1-20

需求描述
有很多域名需要解析到A记录,有的需要解析到CNAME记录,以下两个函数解决这个问题

import dns.resolver


def get_a_answer(vDomain):
    try:
        vIP = dns.resolver.query(vDomain, 'A')
        return str(vIP[0])
    except Exception as e:
        print(e)
        print("ERROR MARK-6dDC0e1394DaEb3E")
        print("ERROR WRONG function get_a_answer() aDomainName -- aIP")
        return '1.1.1.1'


def get_cname_answer(vDomain):
    try:
        vCName = dns.resolver.query(vDomain, 'CNAME')
        return str(vCName[0].target).strip('.')
    except Exception as e:
        print(e)
        print("ERROR MARK-Efba08cfd382Aa61")
        print("ERROR WRONG function get_cname_answer() aDomainName -- aCName")
        return 'www.some.com'

Donate
云乞讨

将JAVA程序配置到systemd的启动方式 2021-1-14

需求描述
原来研发把Java程序都是用到其工作目录nohub java -jar xxx.jar方式启动,将Java程序配置为systemd启动停止的方式,更方便日常管理

原先的Java程序启动停止用法
// 停止JAVA程序的方法 root@server:~# kill -9 $(ps -ef|grep fetch-82935c6a252fb-1.0-SNAPSHOT.jar |grep -v grep|awk '{print $2}') // 启动JAVA程序的方法 root@server:~# nohup java -Xms256m -Xmx4096m -jar fetch-82935c6a252fb-1.0-SNAPSHOT.jar >> /dev/null &

修改操作:
将如下的内容写入文件 /etc/systemd/system/fetch_data.service
其中fetch_data为自己定义的一个名字 不要占用原有服务的名称 且最好都是小写字母

[Unit]
Description=JAVA Service FetchData
After=network.target

[Service]
Type=simple
User=tmn
Restart=on-failure
RestartSec=5s
ExecStartPre=cd /opt/user/run/FetchDataWorkDir/
ExecStart=/app/jdk/jdk1.8.0_202/bin/java -Xms256m -Xmx4096m -jar /opt/user/run/FetchDataWorkDir/fetch-82935c6a252fb-1.0-SNAPSHOT.jar

[Install]
WantedBy=multi-user.target
# 重新加载修改后的service文件
root@server:~# systemctl daemon-reload
# 修改后的启动方式和停止方式
root@server:~# systemctl start fetch_data     # 启动
root@server:~# systemctl restart fetch_data   # 重启
root@server:~# systemctl stop fetch_data      # 停止
root@server:~# systemctl status fetch_data    # 查看状态
Donate
云乞讨

Windows系统上的wget 2021-1-5

需求: Windows系统环境下,偶尔下载东西,没有必要用浏览器,需要一个轻量化的工具,这个时候GNU Wget for Windows就闪亮登场了

官方网站地址 https://www.gnu.org/software/wget/

镜像网站地址 http://mirrors.kernel.org/gnu/wget/

2021-1-5 Dasmz从 https://eternallybored.org/misc/wget/ 下载到的版本是 1.20.3 https://eternallybored.org/misc/wget/1.20.3/64/wget.exe

Wget用法比较简单 基础用法如下:

Windows-cmd > wget.exe https://www.somedomain.com/filename.tar.gz
Donate
云乞讨

Debian 9或者Debian 10设置apt包管理的走HTTP代理的方式 2021-12-26

需求描述
为内网环境的机器的apt或者yum配置HTTP代理, 本次设置的内容为Debian 9的apt的HTTP代理

2021-12-26 更新文档,在Debian 10系统环境上验证成功

临时用法
root@server:~# 'http_proxy=http://PROXYSERVERIP:PROXYPORT' apt update
永久设置的配置方法
编辑
root@server:~# vi /etc/apt/apt.conf.d/02proxy
增加内容
Acquire::http::Proxy "http://PROXYSERVERIP:PROXYPORT";
Acquire::https::Proxy "https://PROXYSERVERIP:PROXYPORT";

或者,写入内容的语法为:

Acquire {
  http::Proxy "https://PROXYSERVERIP:PROXYPORT";
  https::Proxy "https://PROXYSERVERIP:PROXYPORT";
}
Acquire {
  http::Proxy "https://10.11.11.161:11109";
  https::Proxy "https://10.11.11.161:11109";
}
Donate
云乞讨