基于HTTP网络代理的校园网(局域网)网络共享
问题描述
嗯,校园网欠费了,但是宿舍这里无法登陆,显示欠费,实验室的电脑使用的网关是可以登陆正常上网的!不显示欠费!内网远程实验室桌面,没问题,是不是有点麻烦?既然能远程,那说明可以通过代理实现网络数据的转发!网络共享,自己动手丰衣足食!
问题抽象
同一局域网内,有一台电脑可以上网,想要通过这台电脑,使得其他电脑或者移动设备可以上网
适用环境
可以上网的电脑:Windows7及以上系统,或者能够部署HTTP代理服务器的皆可
其他电脑或移动设备:安装有支持全局HTTP网络代理功能的软件,系统自带支持全局亦可
我的实际环境
可以上网的电脑:Windows 10 1703 专业版
其他电脑或移动设备:Android
& Windows 10
1703 专业版 & iPhone
支持全局HTTP的软件:
Android
: 系统自带的WLAN中的HTTP代理 或 Adguard(或使用手机版SSR、v2ray等可以实现全局代理流量、支持转发sock或http的app)
iPhone
: 系统自带的WLAN中的HTTP代理 或 支持HTTP全局代理即可(小飞机)
Windows
: SStap | Adguard
代理服务器部署:CCproxy
实现步骤
① 完成相关软件的安装
② 配置CCproxy
③ 配置需要网络的电脑或移动设备的HTTP代理
服务器地址就是可上网电脑CCproxy中绑定的内网地址
端口是CCproxy中配置HTTP的端口号
用户密码若有则是CCproxy新建的用户名与密码
若无置空即可
④ 可以上网了
结语
当然以上通过CCproxy的HTTP代理实现的网络共享,同样也可在可上网的电脑上安装node.js搭建SSR服务器,通过SStap可实现SSR的连接,但某些情况下由于有UDP的转发,性能可能不太稳定
python3使用scapy.rdpcap的解码问题
为了实现流量的特征提取
我使用scapy实现抓包数据的读取
1 | from scapy.all import rdpcap |
但是print的数据却很不人性化如下:
1 | b'\x00\x0c)\n\xf1\r\x00PV\xc0\x00\x08\x08\x00E\x00\x00\xa2Z\t@\x00@\x06\xb8z\xc0\xa8S\x01\xc0\xa8S\x80,]#\x8cH_\xc5\xa4L\xed0=P\x18\x01\x00\xff\x8b\x00\x00POST /getname HTTP/1.1\r\nHOST: 192.168.83.128:9100\r\ncontent-type: application/json\r\ncontent-length: 17\r\n\r\n{"name":"kslaaa"}' |
这哪是人看的
所以需要加上一个参数
mysummary
,如下
1 | from scapy.all import rdpcap |
print出来如下,咳咳,稍微有点人性化,至少可以处理了
1 | <bound method Ether.mysummary of <Ether dst=00:0c:29:0a:f1:0d src=00:50:56:c0:00:08 type=0x800 |<IP version=4 ihl=5 tos=0x0 len=162 id=23049 flags=DF frag=0 ttl=64 proto=tcp chksum=0xb87a src=192.168.83.1 dst=192.168.83.128 |<TCP sport=11357 dport=9100 seq=1214236068 ack=1290612797 dataofs=5 reserved=0 flags=PA window=256 chksum=0xff8b urgptr=0 |<Raw load='POST /getname HTTP/1.1\r\nHOST: 192.168.83.128:9100\r\ncontent-type: application/json\r\ncontent-length: 17\r\n\r\n{"name":"kslaaa"}' |>>>>> |
基于Python的支持向量机-鸢尾花
初次尝试编写的支持向量机实例
鸢尾花二属性支持向量分类也比较适合我这种新手
网上有人多写过,但是我尝试这写时才发现有一堆问题
不知是版本问题还是模块方法被废弃了
几经波折整理出能正常运行的python代码
环境为python3.7
1 | # -*- coding:utf-8 -*- |
方便没有数据的小伙伴,以下数据直接复制到iris.data
中即可
1 | 5.1,3.5,1.4,0.2,Iris-setosa |
输入字体之间的间隔突然变大了
额,这个问题之前也遇到几次,后来莫名其妙变好了
我就没深究
最近写代码又出现了这种情况
就是敲了个快捷键,就变成
后来发现是IDE的快捷键和输入法快捷键冲突了
解决方法:
按一下 shift+空格键 就好啦~
配置PLSQL远程连接虚拟机中的Oracle数据库
前提:
1、虚拟机中已成功安装Oracle数据库
2、配置了监听器
3、下载安装PLSQL
好了,直接进入正题
第一步:安装instantclient
安装甲骨文提供的instantclient作为本地电脑的配置客户端
这里也提供一个官网的传送门下载页面 ,可以根据需要下载
该客户端解压即可用
第二步:配置instantclient
我提供的资源则直接修改配置即可,从官网down下来的客户端是没有network
文件夹的
需要在文件夹中新建一个network
文件夹以及子文件夹admin
(也可以不建)
从安装了oracle数据库的服务端目录product\11.2.0\client_1\network\admin
中拷贝一份tnsnames.ora
文件
将tnsnames.ora
文件放入network
文件夹中
以下是我的tnsnames.ora
配置仅供参考:
1 | # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0.4/network/admin/tnsnames.ora |
以文本格式打开tnsnames.ora
,前面两行注释不用管,
PROTOCOL
是远程监听器的协议类型,
HOST
是远程服务器地址,PORT
自然是端口
SERVICE_NAME
则是你远程数据库的实例名称,默认安装的话是ORCL
如果是安装在虚拟机中的数据库,连接时记得关闭虚拟机防火墙
到这里instantclient就配置完了
第三步:配置PLSQL
打开PLSQL,关闭登录界面直接进入软件界面
Configure
> Preferences
> 连接
找到右侧面板中的Oracle
主目录名和OCI
库
Oracle主目录名中填入instantclient的解压地址
OCI库则是填入instantclient的解压地址/oci.dll
,也就是定位到OCI类库
类似于我这样:
确认并重启PLSQL
此时的登录界面就可以检测到在tnsnames.ora
中配置的数据库实例了
输入对应的用户名密码即可登录数据库,收工!
Pycharm默认输入状态是insert状态,选中文字无法直接输入替换或删除
最近开始学习python,使用Pycharm编辑器进行学习过程中却发现:
打开一个新的py文件,我的光标处于加粗状态,也就是编程软件经常出现的insert插入编辑模式,我就点击了一下insert按键,退出了这个模式,但是我每次打开都是会处于这种模式,并且选中的文字无法通过键盘输入直接替换或删除,只能一个一个删除再写。。。
于是闲着无聊时,去翻了翻前辈们的博文,终于发现,是那个第一次安装Pycharm时推荐我安装的仿Vim插件搞的鬼~~
所以如果遇到以上情况只要跑去工具栏中,把Tools下的Vim Emulator勾选状态去掉即可,我的天,这算是给自己挖的坑吗。。。
在VMware+centos6.5的基础上安装Oracle(下)
上一节已经应该熟悉了终端的基本操作,这一节将执行更多的命令。
1 添加用户组与用户
接着上一节,首先完成用户组和用户的添加,以root账号登陆系统,打开终端,输入以下命令
1 | groupadd oinstall |
然后创建相关目录,并给用户赋予访问修改权限
1 | mkdir -p /data/app/oracle/product/11.2.0.1 |
接下来就是这一节的主要部分了,首先要知道的是,当通过vi命令打开文件后,按 i 可以进入编辑状态
当编辑完要退出时,先按键盘左上方Esc
键,然后输入冒号,再输入wq
完成编辑保存退出
例如:
1 | vi test.txt #进入编辑模式 |
2 配置Oracle相关参数
2.1 设置用户安全参数
打开root终端输入以下命令
vim /etc/security/limits.conf
在文件末尾添加
1 | oracle soft nproc 2047 |
2.2 将用户安全参数添加到会话执行中
root终端输入以下命令
vim /etc/pam.d/login
在文件末尾添加
1 | session required /lib64/security/pam_limits.so |
2.3 配置用户参数初始化逻辑
root终端输入以下命令
vim /etc/profile
在文件末尾的done后添加如下
1 | if [ $USER = "oracle" ];then |
保存退出后执行以下命令,完成加载配置
source /etc/profile
2.4 配置oracle用户的环境变量
在终端使用su oracle
命令可以实现终端用户的转换
oracle终端输入以下命令
vim ~/.bash_profile
在文件末尾添加
1 | #alias sqlplus='rlwrap sqlplus' |
保存退出后执行source ~/.bash_profile
命令,完成加载配置
2.5 修改系统标识
由于oracle默认是不可以安装到centos系统上的,所以需要修改centos的系统标识
可修改成redhat-7
root终端输入
vi /etc/redhat-release
修改原系统标识并保存退出
2.6 完成Oracle依赖包的下载
首先确保centos连接上了网络(默认连接配置即可,及虚拟机使用NAT模式,centos连接使用DHCP自动获取,windows网络适配器打开了网络共享,并且共享网络指向VM8网络适配器),你问我网络在哪儿看?下图所示,拿走不谢,记住是鼠标右击那个网络图标,至于如何知道连没连上网,终端输入ping www.baidu.com
,能获取到信息就是连上了,不管连上没连上记得按 ctrl+c
退出ping的状态,不然会一直执行的
root终端输入以下命令
1 | yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers |
到这里依赖包就全下载完成了,可以考虑更改成网络连接状态了
3 网络桥接的实现
3.1 创建桥接
先要保证网络适配器中有桥接网络的存在,虚拟机工具栏中点开编辑选项,选中下拉菜单中的虚拟网络编辑器(推荐先关闭虚拟机在进行操作,开着虚拟机操作时网络桥接是无法选中自动选项的)
如果你的虚拟网络适配器有桥接模式,可以直接跳过虚拟机的相关设置
赋予管理员权限之后就可以执行添加网络的操作了,添加一个网络,并在VMnet信息那一块选中桥接模式,桥到的复选框选择自动(关闭了虚拟机进行设置,默认是自动),然后点击确认即可
然后就在虚拟机设置中修改网络适配器的连接方式为桥接模式即可
3.2 centos网络配置
3.2.1 了解windows上的IPv4、DNS
windows下启动控制台,输入ipconfig/all 查看网络信息,以下是我的以太网适配器的IPv4信息
所以我的虚拟机网络设置要和windows处于同一个网段,也就是说必须是192.168.1.*
,至于网关我推荐一致就行,以下是我的网络连接的设置,仅供参考
192.168.1.120 255.255.255.0 192.168.1.1 DNS:192.168.1.1
设置完成后使用centos中的终端和windows终端都ping一下看看是否都能连接
到这里网络设置,呸,到这里网络设置刚刚开始
设置完以上的连接信息后,/etc/sysconfig/network-scripts
目录下的ifcfg-eth0
文件中的ONBOOT
属性默认就是yes
了,不需要再去修改了
3.2.2 关闭防火墙
root终端中输入以下命令
1 | service iptables stop |
3.2.3 关闭selinux
这里我也不清楚为啥要关闭,不过大家都关了,我也就关了,中国式扎堆嘛
root终端输入以下命令
vim /etc/selinux/config
按 i 键进入编辑状态,将SELINUX属性设为disabled
3.2.4 设置centos的host文件
root终端输入以下命令
vim /etc/hosts
在host文件中插入一行,用于DNS解析主机地址,前面的地址是centos的IPv4地址,后面的centos是之前安装系统时设定的主机名,这样设置可以使oracle的监听器启动的更快
192.168.1.120 centos
3.2.5 添加主机连接参数
root终端输入以下命令
vim /etc/sysctl.conf
在文件末尾添加
1 | fs.aio-max-nr = 1048576 |
保存退出后,使用命令sysctl -p
完成加载配置,到这里网络配置就算结束了
4.解压安装包,运行安装程序
4.1 解压安装包
注销当前root账户,切换到oracle账户进行登录
通过拖拽,将windows中下载的linux版的两个oracle数据库压缩包传输到/home/oracle/soft
目录下(soft当然是自己建的文件夹啊),使用unzip命令进行解压
打开oracle终端输入以下命令
1 | cd /home/oracle/soft |
执行完成后soft文件夹中会有一个database文件夹,推荐解压完重启虚拟机
重启完成后先输入xhost +
,如果出现提示access control disabled, clients can connect from any host
,则切换到
oracle终端进行操作
4.2 运行安装程序
为防止中文乱码,使用英文模式执行安装程序,oracle终端输入以下命令
1 | cd database |
如果之前的分区按照我的推荐来的话,不会因为内存问题卡在这里,就会显示Please wait
然后就是常规的安装数据库了,指定数据库安装路径时如下图即可
接着就是一路根据需要选择,一路next了,遇到第18步时勾上Ignore All
即可,因为我们安装的包版本是新的,而第18步只认版本不认包,所以忽略就行
当然了安装到最后时需要在终端执行两行命令,就是遇到下图的弹窗时:
而执行的命令就是弹窗中显示的那两行
打开终端切换到root终端,输入以下命令
1 | /data/app/oraInventory/orainstRoot.sh |
到这里安装就完成了
接下来配置监听器,终端输入以下命令
1 | export LANG=en_us |
然后点击next
,最后点击finish退出配置监听器界面,完成配置
测试监听器:
打开监听器:lsnrctl start
(默认启动监器LISTENER,如果启动非LISTENER则使用lsnrctl start XXXX命令,XXXX是监听器名字)
查看1521接口侦测情况:netstat -ant|grep 1521
连接:sql /nolog
连接权限:connect / as sysdba
立即关闭服务:shutdown immediate
启动服务:startup
退出SQL:exit
关闭监听器:lsnrctl stop
功能测试无误,这一次记录到此完结,至于在windows上使用PLSQL连接到虚拟机中的该Oracle的指导记录,如果有空闲的话会考虑写一篇文章的。
此记录+教学的文章中用到的很多命令都是我在网上学习借鉴的,再次感谢前辈大神们的文章,此文中也包含了许多我个人的理解,如果有错,多多包涵。
只要跟着我的步骤一步一步来,是肯定可以搭建成功的,最容易出问题的是忽视了root终端与oracle终端的切换,细节决定成败!祝你们好运!
在VMware+centos6.5的基础上安装Oracle(上)
百般折腾后(我会说我装了不下5遍的系统吗0.0),终于在CentOS 6.5上成功搭建了Oracle11g数据库,感动到自己想哭,在此记录下搭建和安装过程,在此首先感谢,各个论坛大佬的博客。我第一次发技术文章,如果有问题,还请多多包涵,哈哈~
好了进入正题。
1 安装VMware虚拟机
安装一个VMware虚拟机,安装过程网上一大把。
2 安装centos
在虚拟机上安装CentOS6.5,系统映像我是去官网下载的。
这里我也给出6.5链接:点击打开链接
下载bt,用下载工具下载就行了,下载下来是两个镜像,使用DVD1镜像安装即可。
2.1 配置虚拟机
上处由于要安装oracle的依赖包,要用到yum进行联网下载,所以目前以NAT模式连接主机网络,之后要改成桥接网络,然后点击完成就可以启动虚拟机了
2.2 安装centos6.5
这里先不配置网络,直接点击下一步
如果设定的密码位数低于8位,会出现密码不安全的提醒,不用管他,直接下一步就行
此处我选择自定义布局即手动分区,以下是我的分区结构,仅供参考,可以不同,但是推荐swap分区分配3GB以上的空间,不然安装Oracle时会出现swap空间不足的问题
创建分区时选择默认的标准即可
完成分区后确认无误,点击下一步->格式化->将修改写入磁盘,分区工作就算完成了
接下来就是选择安装的内容了,我所选择的都只是为装oracle做准备的,仅供参考,可以根据需要选择安装
oracle数据库的英文安装界面不会出现乱码问题,系统选择中文有可能出现乱码,可以采用命令的方式进行英文界面安装命令如下:export LANG=en_us
完成安装选择后就可以点击下一步进行安装了,安装完成后点击重新引导,会进入账号创建界面
一路点击确认,最后重启
到这里,centos6.5就算是安装完成了
重启后进入登录界面,点击其他,输入超级管理员账号root与之前第一次设定的密码进行登录,成功登陆就可以进入桌面了。
3 Oracle数据库安装的前提准备
在进行安装之前,需要做好事前工作,如下:
3.1 下载
① linux版的oracle,附上官网下载地址:点击打开链接,官网需要注册才能下载,邮箱注册一下就可以了,还得点击上方的我同意,具体如下:
3.2 安装VMware Tools
安装了VMware Tools之后将能够将windows中的文件直接通过鼠标拖拽的方式传输到虚拟机中,方便传输linux版的数据库压缩文件
点击虚拟机上方工具栏中的虚拟机按钮(如果窗口缩太小则在上方工具栏的Workstation的二级菜单中),下拉框中找到安装VMwaretools 此时目录中的文件是在media中的,无法直接执行安装操作
所需要将目录中的所有文件拷贝到mnt目录(
桌面双击计算机->文件系统->mnt
)中的VMware tools文件夹中(什么,你跟我说没有这个文件夹,当然没有啦,我是自己建的),当然直接选中拖拽过去也是可以的,效果如下图。
然后就是敲命令的时间了,打开终端(你问我终端在哪里?截图如下,拿走不谢)
在终端输入命令:
cd /mnt/VMware\ tools/
注:在终端中和很多编写网页的软件似的,只要你编写的命令不错,在敲目录中时可以使用tab建,根据你已写的目录路径实现自动补全(前提是你已写目录没有错误,且目录中有匹配的文件或文件夹,如果你不清楚目录情况,可以通过ls命令查询目录下的所有文件,ll命令可以查询当前目录下附带详细信息的所有文件)
然后输入命令解压文件,
tar -xzf 要解压的文件名
进入到解压出来的文件中,然后安装 VMware Tools,命令如下:
1 | cd vmware-tools-distrib\ |
安装过程中会有一堆询问的提示,一路无脑enter就行了,enter就是选择默认属性,安装完成后重启就可以拖拽文件到centos的桌面了
3.3 配置
在centos中添加新的群组和账号,以及赋予账号安装执行oracle数据库的权限,这留到下一节中写上。