iptables路由转发
一、Linux开启路由转发功能
## 临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward
## 永久生效的话,需要修改sysctl.conf:
net.ipv4.ip_forward = 1
## 立即生效
sysctl -p
二、iptables的启停服务
## 启动命令
service iptables start
## 查看状态命令
service iptables status
## 重启命令
service iptables restart
## 停止命令
service iptables stop
## 永久性生效,重启后不会复原
chkconfig iptables off
## 永久性保存:
iptables-save > /etc/sysconfig/iptables
service iptables save
注意:
执行service iptables status这个命令后,部分linux系统返回iptables的服务状态:active,部分linux系统会返回iptables的4表5链的所有的规则内容.
iptables的配置文件路径:
/etc/sysconfig/iptables
.iptables规则执行后是临时的,重启服务后会丢失,如果需要永久保存,则需要保存到配置文件service iptables save.
查看iptables规则必须通过命令来查看iptables -L,部分临时生效的规则在配置文件中不会体现.
iptables默认规则里面有两条规则会导致nat转发功能失效,请注意,目前没有找到具体解决方案,既保证只开放IP能访问,又能进行nat地址转换,需后续研究。
-A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
三、iptables基本命令
-
iptables -L
iptables -L命令是用来查看iptables防火墙的规则的。它会列出所有的iptables规则,包括输入、输出、转发等方向的规则。
-
iptables -L -t nat -n
iptables -L -t nat -n命令是用来查看iptables防火墙中nat表的所有规则的。其中,-t nat 表示查看nat表,-n 表示以数字形式显示地址和端口号,不进行域名解析。
-
iptables -t net -F
iptables -t net -F 命令是用来清空net表中的所有规则的。其中,-t 表示选择net表,-F 表示清空该表中的所有规则。
-
iptables -t filter -F
iptables -t net -F 命令是用来清空net表中的所有规则的。其中,-t 表示选择net表,-F 表示清空该表中的所有规则。
四、开放端口号
iptables -I INPUT 2 -p tcp --dport 8080 -j ACCEPT
这个命令表示在iptables防火墙中添加一条规则,允许从外部网络通过TCP协议连接到本地主机的8080端口。具体解释如下:
-I INPUT
: 表示将规则添加到INPUT链中;2
: 表示将规则放在INPUT链的第2个位置上;-p tcp
: 表示规则适用于TCP协议;--dport 8080
: 表示规则适用于目标端口号为8080的数据包;-j ACCEPT
: 表示接受符合上述条件的数据包。
五、nat网络地址转换
iptables -t nat -A PREROUTING -p tcp --dport 9560 -j DNAT --to-destination 192.168.230.250:20060
iptables -t nat -A POSTROUTING -d 192.168.230.250 -p tcp -j SNAT --to-source 192.168.230.251
以上两个命令都是用于设置 NAT(网络地址转换)规则,具体解释如下:
iptables -t nat -A PREROUTING -p tcp --dport 9560 -j DNAT --to-destination 192.168.230.250:20060
这个命令的作用是将源地址为本地计算机、目标端口为9560的 TCP 数据包的目标 IP 地址和端口号进行转换。转换后,目标 IP 地址变为 192.168.230.250,端口号变为 20060。这样,当本地计算机向目标地址 192.168.230.250:20060 发送数据时,就会被路由器转发出去。
iptables -t nat -A POSTROUTING -d 192.168.230.250 -p tcp -j SNAT --to-source 192.168.230.251
这个命令的作用是将目标地址为 192.168.230.250、目标端口为 TCP 的数据包的源 IP 地址进行转换。转换后,源 IP 地址变为本地计算机的私有 IP 地址(通常为 192.168.230.x),从而隐藏了真实源 IP 地址。这样,当路由器将数据包从内部网络发送到外部网络时,就会使用转换后的源 IP 地址进行传输。
文件,日志搜索
一、log日志搜索
这个命令的作用是在当前目录及其子目录中查找所有以 “log-2023-07-01” 开头,并以 “.log” 结尾的文件,然后在这些文件中搜索包含 “AAAAAAAAAAAAAAAAA” 的行,并显示该行的上下各10行。
find . -type f -name "log-2023-07-01*.log" | xargs grep -A 10 -B 10 "AAAAAAAAAAAAAAAAA"
解析:
grep
:用于在文件中搜索匹配的文本。-r
:递归搜索子目录。-n
:显示匹配行的行号。-w
:匹配整个单词。^log-2023-07
:匹配以 “log-2023-07” 开头的行。-A 10
:显示匹配行的上10行。-B 10
:显示匹配行的下10行。--include='*.log'
:只搜索以 “.log” 结尾的文件。-e '哈哈'
:搜索包含 “哈哈” 的行。.
:指定搜索的目录。
grep -rnw '^log-2023-07' -A 10 -B 10 --include='*.log' -e '哈哈' .
SVN服务部署和使用
一、Linux服务器部署
1、检查安装
-
检查是否安装了svn
rpm -qa subversion
-
卸载安装
yum -y remove subversion
2、安装SVN
-
安装
yum -y install subversion
-
查看svn版本
svn --version
3、创建目录
-
创建svn目录
mkdir -p /usr/local/svn/svnrepos
-
创建版本库
svnadmin create /usr/local/svn/svnku
其中conf文件夹下存放的是SVN的配置文件
4、配置
-
创建用户及密码
cd /usr/local/svn/svnku/conf vim passwd
在[user]标签下加入
用户名=密码
[users] admin=admin@123 test=123456
-
权限配置
-
配置SVN服务配置文件
svnserve.conf
anon-access = none #禁止匿名用户访问 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /usr/local/svn/svnku #认证空间名,版本库所在目录
5、启动与停止SVN服务
-
启动服务
svnserve -d -r /usr/local/svn/svnku
-
查看svn是否运行
ps -ef|grep svnserve
-
停止服务
kill -9 8128
6、设置开机自启
-
在 /etc/sysconfig 路径下修改svnserve文件
-
执行
systemctl enable svnserve.service
二、svn在IDEA使用
- 本地代码分享到SVN仓库
- 从仓库拉去新的代码分支
- idea中分支代码切换
- idea中代码合并
(拉取代码,创建分支,合并代码)
1cf47eca3dd644fdb80c0cf3a287e8e3.png)
-
执行
systemctl enable svnserve.service
二、svn在IDEA使用
- 本地代码分享到SVN仓库
- 从仓库拉去新的代码分支
- idea中分支代码切换
- idea中代码合并
(拉取代码,创建分支,合并代码)