"port 22 is open" *where*???
You probably have a software firewall (iptables) on your Linux host.
You probably also have a firewall on your DSL or Cable modem (whatever you're using for Internet connectivity).
Port forwarding needs to be configured to point to your actual host.
You need to find - and check - everything on your LAN between the Internet and your sshd daemon.
is a great resource - please check it out!