标签 端口 下的文章

修改注册表解决Windows 2008 R2 系统默认80端口被系统占用

安装好Windows2008R2企业版以后,默认80端口被占用,检查方法如下:

netstat -ano | findstr :80

80.png

任务管理器查看进 pid 为4
 映像名称   pid  描述
 system    4    NT kernel&System

4.png
修改注册表解决:

regedit
 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP'右边有一个'start'的DWORD的值将'3'改为'4'

regedit.png
最后重启即可。

Docker环境下安装部署Redis5.0挂载外部配置和数据

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
docker-redis.png
本文记录docker下安装部署redis5.0的过程:
os版本centos7.5
先更新 yum 软件管理器,然后再安装 Docker

[root@localhost /] yum -y update
[root@localhost /] yum install -y docker

验证安装,查看 Docker 版本信息

[root@localhost /] docker -v
Docker version 1.13.1, build 8633870/1.13.1
You have new mail in /var/spool/mail/root

启动、停止、重启docker服务、加入开机启动

systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl enable docker

安装redis5.0镜像

[root@sso-nginx-b ~]# systemctl start docker
[root@sso-nginx-b ~]# docker pull redis:5.0
Trying to pull repository docker.io/library/redis ... 
5.0: Pulling from docker.io/library/redis
f17d81b4b692: Pull complete 
b32474098757: Pull complete 
8980cabe8bc2: Pull complete 
2719bdbf9516: Pull complete 
f306130d78e3: Pull complete 
3e09204f8155: Pull complete 
Digest: sha256:481678b4b5ea1cb4e8d38ed6677b2da9b9e057cf7e1b6c988ba96651c6f6eff3
Status: Downloaded newer image for docker.io/redis:5.0

创建redis运行目录及文件

mkdir -p /data/docker/redis
touch /data/docker/redis/redis.conf

redis.conf文件内容如下:

bind 172.17.0.2 127.0.0.1
#bind 0.0.0.0
protected-mode yes
port 6380
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no   #如果daemonize yes无法启动容器
supervised no
pidfile /data/docker/redis/6380.pid
loglevel notice
logfile "6380.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

创建redis实例:

docker run -d --privileged=true --restart=always -p 6380:6380 -v /data/docker/redis/redis.conf:/etc/redis/redis.conf -v /data/docker/redis:/data --name redistest1 redis:5.0 redis-server /etc/redis/redis.conf --appendonly yes

实例说明如下:

--privileged=true 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
--restart=always 开机启动容器
-p 6380:6380 映射宿主机6380端口到docker端口6380
-v /data/docker/redis/redis.conf:/etc/redis/redis.conf   映射配置文件
-v /data/docker/redis:/data  映射数据目录地址
--name redistest1 redis:5.0 redis-server /etc/redis/redis.conf   #docker名字 redis实例名 配置文件
--appendonly yes:开启持久化

查看redistest1容器的IP地址:

docker inspect redistest1 | grep -i address
            "LinkLocalIPv6Address": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "GlobalIPv6Address": "",
            "IPAddress": "172.17.0.2",
            "MacAddress": "02:42:ac:11:00:02",
                    "IPAddress": "172.17.0.2",
                    "GlobalIPv6Address": "",
                    "MacAddress": "02:42:ac:11:00:02"

将/data/docker/redis/redis.conf里面的bind地址修改为

bind 172.17.0.2 127.0.0.1

重启redistest1容器:

docker restart redistest1

进入redis控制台:

redis-cli -h 172.17.0.2 -p 6380  #172.17.0.2是redistest1容器的IP地址,也可以用宿主机IP地址进入

启动另外一个redis实例:

docker run -d --privileged=true --restart=always -p 6381:6381 -v /data/docker/redis-6381/redis.conf:/etc/redis/redis.conf -v /data/docker/redis-6381:/data --name redistest2 redis:5.0 redis-server /etc/redis/redis.conf --appendonly yes

至此,docker上安装部署redis完毕.

Windows修改端口连接数范围及快速释放time_wait

查看当前端口范围:(win10/win2008/win2012默认是一致的)

C:\Users\Administrator>netsh int ipv4 show dynamicportrange tcp

协议 tcp 动态端口范围
---------------------------------
启动端口        : 49152
端口数          : 16384

C:\Users\Administrator>netsh int ipv4 show dynamicportrange udp

协议 udp 动态端口范围
---------------------------------
启动端口        : 49152
端口数          : 16384

C:\Users\Administrator>netsh int ipv6 show dynamicport tcp

协议 tcp 动态端口范围
---------------------------------
启动端口        : 49152
端口数          : 16384

C:\Users\Administrator>netsh int ipv6 show dynamicport udp

协议 udp 动态端口范围
---------------------------------
启动端口        : 49152
端口数          : 16384

调整此范围:
netsh int < ipv4 | ipv6 > 设置动态 < tcp | udp > 开始数数 = =范围

netsh int ipv4 set dynamicport tcp start=2000 num=63000
netsh int ipv4 set dynamicport udp start=2000 num=63000
netsh int ipv6 set dynamicport tcp start=2000 num=63000
netsh int ipv6 set dynamicport udp start=2000 num=63000

time_wait超时时间调整

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
“MaxUserPort”=dword:0000fffe
“TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)

重启生效。
via: https://support.microsoft.com/zh-cn/help/929851/the-default-dynamic-port-range-for-tcp-ip-has-changed-in-windows-vista
http://www.361way.com/win-dynamic-port-timewait/5255.html

Linux下使用iptables端口转发

需要将外网访问本地IP(192.168.255.244)的8443端口转换为访问192.168.255.97的8443端口,这就需要用到iptables的端口映射

实现:

  1. 需要先开启linux的数据转发功能
# vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
# sysctl -p  //使数据转发功能生效

在255.244机器上进行相同端口转发

iptables -t nat -I PREROUTING -p tcp --dport 8443 -j DNAT --to 192.168.255.97
iptables -t nat -I POSTROUTING -p tcp --dport 8443 -j MASQUERADE

主机内部的端口映射
我们可能需要将访问主机的7979端口映射到8080端口。也可以iptables重定向完成

iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080

如果需要本机也可以访问,则需要配置OUTPUT链:

iptables -t nat -A OUTPUT -p tcp --dport 7979 -j REDIRECT --to-ports 8080

查看nat表

iptables -t nat -vnL POSTROUTING --line-number

清空 nat 表

iptables -F -t nat 

PostgreSQL常用操作命令整理

使用yum安装PostgreSQL:
安装PostgreSQL客户端

yum install postgresql-client -y

安装PostgreSQL服务端:

yum install postgresql -y

安装完成后,PostgreSQL服务器会自动在本机的5432端口开启。
安装图形管理界面(可选)

yum install pgadmin3 -y

启动服务

service postgresql start

安装参考:https://www.unixso.com/PostgreSQL/centos7-4-install-postgresql10-1.html
进入控制台

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

退出

postgres=# \q

创建用户

CREATE USER youusername WITH PASSWORD 'youpassword';

创建数据库并赋予用户

postgres=# CREATE DATABASE youdbname OWNER youusername;
postgres=# GRANT ALL PRIVILEGES ON DATABASE youdbname to youusername;
postgres=# \c youdbname;
postgres=# ALTER SCHEMA public OWNER to dbuser;
postgres=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO youusername;
postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO youusername;

查看所有用户

postgres=# \du

更改密码

postgres=# \password youusername

删除用户

postgres=# drop user youusername ;

查看所有库

postgres=# \l

切换数据库

postgres=# \c exampledb

常用控制台命令

\password           设置密码。
\q                  退出。
\h                  查看SQL命令的解释,比如\h select。
\?                  查看psql命令列表。
\l                  列出所有数据库。
\c [database_name]  连接其他数据库。
\d                  列出当前数据库的所有表格。
\d [table_name]     列出某一张表格的结构。
\du                 列出所有用户。
\e                  打开文本编辑器。
\conninfo           列出当前数据库和连接的信息。

基本的 SQL 语句

# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);

# 插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');

# 查询记录
SELECT * FROM user_tbl;

# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';

# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;

# 添加字段
ALTER TABLE user_tbl ADD email VARCHAR(40);

# 更改字段类型
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;

# 设置字段默认值(注意字符串使用单引号)
ALTER TABLE user_tbl ALTER COLUMN email SET DEFAULT 'example@example.com';

# 去除字段默认值
ALTER TABLE user_tbl ALTER email DROP DEFAULT;

# 重命名字段
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;

# 删除字段
ALTER TABLE user_tbl DROP COLUMN email;

# 表重命名
ALTER TABLE user_tbl RENAME TO backup_tbl;

# 删除表
DROP TABLE IF EXISTS backup_tbl;

# 删除库
\c hello2;
DROP DATABASE IF EXISTS hello;

oem启动报错解决方法及dbconsole的重新配置

Win10下安装的ORACLE11g R2,修改了主机名重启笔记本以后,oem启动报错:

C:\app\ice\product\11.2.0\dbhome_1\BIN>emctl start dbcpnsole
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

解决方法:
根据提示先设置ORACLE_UNQNAME,然后再尝试启动

SET ORACLE_UNQNAME=ORCL(orcl为SID)
emctl start dbconsole

如果启动成功即可使用https://localhost:1158/em登陆oem管理面板了;
如果不行可以尝试重新创建DBCONSOLE:

emca -config dbcontrol db -repos recreate
根据提示,先输入SID,再输入Y继续;
输入端口1521,输入SYS密码,输入DBSNMP密码,输入SYSMAN 密码,输入Y继续
完成。
C:\app\ice\product\11.2.0\dbhome_1\BIN>emca -config dbcontrol db -repos recreate

EMCA 开始于 2018-5-6 16:21:22
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。

输入以下信息:
数据库 SID: unixsodb
监听程序端口号: 1521
监听程序 ORACLE_HOME [ c:\app\ice\product\11.2.0\dbhome_1 ]:
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------

已指定以下设置

数据库 ORACLE_HOME ................ c:\app\ice\product\11.2.0\dbhome_1

本地主机名 ................ ice110
监听程序 ORACLE_HOME ................ c:\app\ice\product\11.2.0\dbhome_1
监听程序端口号 ................ 1521
数据库 SID ................ unixsodb
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............

-----------------------------------------------------------------
是否继续? [是(Y)/否(N)]: y
2018-5-6 16:22:24 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 c:\app\ice\cfgtoollogs\emca\unixsodb\emca_2018_05_06_16_21_22.log。
2018-5-6 16:22:25 oracle.sysman.emcp.EMReposConfig invoke
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2018-5-6 16:23:06 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
2018-5-6 16:23:27 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2018-5-6 16:26:00 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
2018-5-6 16:26:02 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
信息: 正在将配置数据上载到 EM 资料档案库 (此操作可能需要一段时间)...
2018-5-6 16:26:23 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功上载配置数据
2018-5-6 16:26:32 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib
信息: 软件库已配置成功。
2018-5-6 16:26:32 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
信息: 正在部署预配档案...
2018-5-6 16:26:58 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
信息: 预配档案部署成功。
2018-5-6 16:26:58 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息: 正在保护 Database Control (此操作可能需要一段时间)...
2018-5-6 16:27:04 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息: 已成功保护 Database Control。
2018-5-6 16:27:04 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2018-5-6 16:27:50 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2018-5-6 16:27:50 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 https://ice110:5500/em <<<<<<<<<<<
2018-5-6 16:27:52 oracle.sysman.emcp.EMDBPostConfig invoke
警告:
************************  WARNING  ************************

管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。加密密钥已放置在文件 c:/app/ice/product/11.2.0/dbhome_1/ice110_unixsodb/sysman/config/emkey.ora 中。请务必备份此文件, 因为如果此文件丢失, 则加密数据将不可用。

***********************************************************
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2018-5-6 16:27:52

C:\app\ice\product\11.2.0\dbhome_1\BIN>

查看状态:

emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
https://ice110:5500/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory c:\app\ice\product\11.2.0\dbhome_1/ice110_unixsodb/sysman/log

注意重建以后oem的端口变成了5500,默认端口是1158
oem.png
emca常用命令:

创建一个EM资料库
emca -repos create

重建一个EM资料库
emca -repos recreate

删除一个EM资料库
emca -repos drop

配置数据库的 Database Control
emca -config dbcontrol db

删除数据库的 Database Control配置
emca -deconfig dbcontrol db

重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940

启动EM console服务
SET ORACLE_UNQNAME=ORCL(orcl为SID)
emctl start dbconsole

停止EM console服务
emctl stop dbconsole

查看EM console服务的状态
emctl status dbconsole

配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole

重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole

SSH服务配置监听多端口

配置sshd监听多个端口,编辑sshd_config,增加ListenAddress选项 – 指定监听的网络地址,默认监听所有地址。
opensshimg.jpg
可以使用下面的格式:

ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port

如果未指定 port ,那么将使用 Port 指令的值。可以使用多个 ListenAddress 指令监听多个地址。

vi /etc/ssh/sshd_config
增加
ListenAddress 0.0.0.0:22
ListenAddress 0.0.0.0:18929
ListenAddress 0.0.0.0:10761

即监听22, 18929, 10761 (Port选项的端口也要加上)

/etc/init.d/sshd restart

重启服务生效。

使用netstat统计查看访问连接信息

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
状态列表:

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

常用使用方法:

并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

显示当前所有活动的网络连接:
netstat -na

列出所有端口 (包括监听和未监听的)
netstat -a

只显示监听端口 netstat -l
netstat -l

只列出所有监听 tcp 端口 netstat -lt
netstat -lt

只列出所有监听 udp 端口 netstat -lu
netstat -lu

只列出所有监听 UNIX 端口 netstat -lx
netstat -lx

显示所有端口的统计信息 netstat -s
netstat -s

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
netstat -st 
netstat -su

在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
netstat -pt

显示系统不支持的地址族 (Address Families)
netstat --verbose

显示核心路由信息 netstat -r
netstat -r

显示网络接口列表
netstat -i

显示出所有处于监听状态的应用程序及进程号和端口号:
netstat -aultnp

如果想对一个单一的进行查询,只需要在命令后面再加上“| grep $”。这里就用到了管道符,以及grep筛选命令,$代表参数,也就是你要查询的那个。
如要显示所有80端口的网络连接:
netstat -aultnp | grep 80

如果还想对返回的连接列表进行排序,这就要用到sort命令了,命令如下:
netstat -aultnp | grep :80 | sort

当然,如果还想进行统计的话,就可以再往后面加wc命令。如:
netstat -aultnp | grep :80 | wc -l

其实,要想监测出系统连接是否安全,要进行多状态的查询,以及要分析,总结,还有就是经验。总的下来,才可以判断出连接是否处于安全状态。
netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。
netstat -n -p | grep SYN_REC | sort -u

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

列出所有连接过的IP地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN_REC连接节点的IP地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

Kafka集群端口无法监听及访问故障解决

出现问题的kafka版本是0.9.0.1,端口9099老是监听不起来,解决办法:
修改/usr/local/app/msg_server/kafka/0.9.0.1/config/server.properties文件的

listeners=PLAINTEXT://0.0.0.0:9099

这里的listeners也可以修换成内网IP地址,三台记得都修改,或者注释掉listeners增加advertised.listeners参数,
然后重启kafka即可

/usr/local/app/msg_server/kafka/0.9.0.1/bin/kafka-server-start.sh -daemon /usr/local/app/msg_server/kafka/0.9.0.1/config/server.properties 

advertised.listeners这个配置的含义,官网有解释:
Listeners to publish to ZooKeeper for clients to use, if different than the listeners above. In IaaS environments, this may need to be different from the interface to which the broker binds. If this is not set, the value for listeners will be used.
详情:http://kafka.apache.org/documentation/#configuration
kafka就会忽略listeners配置,用一个就可以了;

附server.properties配置文件内容:

# --------------------------------------------- need update
broker.id=0
listeners=PLAINTEXT://0.0.0.0:9099
#advertised.listeners=PLAINTEXT://10.249:9099
port=9099
default.replication.factor=3
# --------------------------------------------- need update
host.name=k1
# --------------------------------------------- need update
advertised.host.name=k1
advertised.port=9099
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/usr/local/app/msg_server/kafka/0.9.0.1/data/
num.partitions=10
num.recovery.threads.per.data.dir=1
log.retention.hours=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=true
#zookeeper.connect=k1:2181
zookeeper.connect=k1:2181,k2:2181,k3:2181
zookeeper.connection.timeout.ms=6000
delete.topic.enable=true

Navicat链接SQLServer时注意事项

Navicat连接远程sqlserver数据库需要安装sqlserver客户端,不过navicat会自动从sqlserver服务器上去下载安装软件,安装过程也是一直点下一步即可,其中“主机名”中要注意了。我们可以填写:IP,端口号的形式也可以直接填写IP。
如果SQLServer修改了端口号,就要以 IP,端口号 的形式链接,默认SqlServer 的1433端口可以不用带;
如下图示:
linke.png
IP后面跟端口号,中间用逗号链接相连,切记。

Linux系统消除未被及时释放的TIME_WAIT状态的TCP连接

Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源。这个时候我们可以优化TCP的内核参数,来及时将TIME_WAIT状态的端口清理掉。

[root@web1 ~]netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 1280
FIN_WAIT1 7
SYN_SENT 1
FIN_WAIT2 7
ESTABLISHED 247
LAST_ACK 1

我们只用关心TIME_WAIT的个数,在这里可以看到,有1280多个TIME_WAIT,这样就占用了1280多个端口,端口的数量只有65535个,占用一个少一个,会严重的影响到后继的新连接,就需调整下Linux的TCP内核参数,让系统更快的释放TIME_WAIT连接。

vi /etc/sysctl.conf 增加如下内容:

net.ipv4.tcp_syncookies = 1   #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1    #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1  #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
net.ipv4.tcp_fin_timeout = 30    #修改系統默认的 TIMEOUT 时间。

sysctl -p 让内核参数生效
流量小的机器一般就可以了,如果是大流量机器增加如下参数:


---阅读剩余部分---

Windows下查看端口对应的进程及kill

查看所有进程占用的端口
netstat –ano 查看所有进程

查看占用指定端口的程序
netstat –ano|findstr "指定端口号"

通过任务管理器杀死相关的进程
方法一:使用任务管理器杀死进程
打开任务管理器->查看->选择列->然后勾选PID选项,回到任务管理器上可以查看到对应的pid,然后结束进程

方法二:使用命令杀死进程
1>首先找到进程号对应的进程名称
tasklist|findstr 进程号
如:tasklist|findstr 80

2>然后根据进程名称杀死进程
taskkill /f /t /im 进程名称
如:taskkill /f /t /im /qq.exe

Linux系统中VPN协议PPTP、L2TP、OpenVPN区别

一、PPTP、L2TP、OpenVPN三种隧道协议的概念

1、PPTP(Point to Point Tunneling Protocol,点对点隧道协议)默认端口号:1723

PPTP,即PPTF协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码身份验证协议 (PAP)、可扩展身份验证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。

---阅读剩余部分---

CentOS7 关闭默认防火墙firewall 切换到iptables

entOS7的防火墙默认使用的是firewall,与之前的版本使用iptables不一样。

1、关闭防火墙:systemctl stop firewalld
2、关闭开机启动:systemctl disable firewalld

3、安装iptables防火墙

安装iptables防火墙:yum install iptables-services -y
设置iptables防火墙开机启动:systemctl enable iptables -y

保存iptables规则:

service iptables save

查看iptables状态:

systemctl status iptables

OK了,根据配置的端口就可以访问了.

xinetd常见服务使用说明:端口映射 时间同步

xinetd是一个运行于类Unix操作系统的开放源代码的超级服务器(Super-server)守护进程。它的功能是管理网络相关的服务。由于其较高的安全性,xinetd开始逐渐取代inetd,用来管理端口映射很不错,当然端口映射还有其他的如iptables/redir/socat等等开源的工具·

---阅读剩余部分---

最新

分类

归档

评论

  • Liang: 贴下编译参数和步骤,...
  • shao3911: 您好,为什么我在编译...
  • aliang: 先看是yum安装还是...
  • aliang: 将原来的nginx安...
  • yen: 3、如果要回滚的话,...
  • yen: 刚好需要升级ngin...
  • 文雨: 一些新的method...
  • aliang: 默认不屏蔽估计开发团...
  • 山野愚人居: PHP既然允许直接使...
  • aliang: 最下面有github地址·

其它